
Python語言調(diào)用免費查詢ip地址API
在圖片中,你可以看到方法是 GET 。端點是 https://pokeapi.co/api/v2/pokemon
后一部分 {id or name}
,稱為路徑參數(shù)。路徑參數(shù)可以是必需的,也可以是可選的。對于 Poke API,它是可選的。你怎么知道的?它在 資源列表/分頁部分 中提到。(調(diào)用任何沒有資源 ID 或名稱的 API 端點將…)
我們需要的最后一個輸入是授權(quán)。像這樣的公共 API 意味著任何人都可以在未經(jīng)授權(quán)的情況下使用它。因此授權(quán)方法是 No Auth。
總而言之,以下是我們將用來從 Pokemon 表中獲取數(shù)據(jù)的輸入:
您可以在第 1 部分文章的術語部分中看到更多類型的授權(quán)。
讓我們根據(jù)上面的輸入構(gòu)建 cURL 命令
curl [OPTIONS] [URL]
curl https://pokeapi.co/api/v2/pokemon
-X
(簡稱 ) --request
,并在其后加上 GET。所以我們有 curl -X GET https://pokeapi.co/api/v2/pokemon
No Auth
,則您不必在命令中提供其他信息所以我們的最終命令是 curl -X GET https://pokeapi.co/api/v2/pokemon
。讓我們將其輸入到我們的 OS 終端并按 Enter 鍵查看輸出。這是我在 Linux 和 Windows 機器上的成功輸出(我對其進行了一些格式化以使其看起來更漂亮)。
{ "count":1281, "next":"https://pokeapi.co/api/v2/pokemon?offset=20&limit=20", "previous":null, "results":[ { "name":"bulbasaur", "url":"https://pokeapi.co/api/v2/pokemon/1/" }, { "name":"ivysaur", "url":"https://pokeapi.co/api/v2/pokemon/2/" }, { "name":"venusaur", "url":"https://pokeapi.co/api/v2/pokemon/3/" }, { "name":"charmander", "url":"https://pokeapi.co/api/v2/pokemon/4/" }, { "name":"charmeleon", "url":"https://pokeapi.co/api/v2/pokemon/5/" }, { "name":"charizard", "url":"https://pokeapi.co/api/v2/pokemon/6/" }, { "name":"squirtle", "url":"https://pokeapi.co/api/v2/pokemon/7/" }, { "name":"wartortle", "url":"https://pokeapi.co/api/v2/pokemon/8/" }, { "name":"blastoise", "url":"https://pokeapi.co/api/v2/pokemon/9/" }, { "name":"caterpie", "url":"https://pokeapi.co/api/v2/pokemon/10/" }, { "name":"metapod", "url":"https://pokeapi.co/api/v2/pokemon/11/" }, { "name":"butterfree", "url":"https://pokeapi.co/api/v2/pokemon/12/" }, { "name":"weedle", "url":"https://pokeapi.co/api/v2/pokemon/13/" }, { "name":"kakuna", "url":"https://pokeapi.co/api/v2/pokemon/14/" }, { "name":"beedrill", "url":"https://pokeapi.co/api/v2/pokemon/15/" }, { "name":"pidgey", "url":"https://pokeapi.co/api/v2/pokemon/16/" }, { "name":"pidgeotto", "url":"https://pokeapi.co/api/v2/pokemon/17/" }, { "name":"pidgeot", "url":"https://pokeapi.co/api/v2/pokemon/18/" }, { "name":"rattata", "url":"https://pokeapi.co/api/v2/pokemon/19/" }, { "name":"raticate", "url":"https://pokeapi.co/api/v2/pokemon/20/" } ] }
注意:cURL 的默認 API 調(diào)用方法已經(jīng)是 GET,因此您實際上不必提供
-X GET
選項部分。因此該命令可以縮寫為:curl https://pokeapi.co/api/v2/pokemon
。但是記住此選項很有用,因為您將來可能想要使用 POST 方法,因此下面的命令仍將保留該-X GET
選項。
恭喜,您剛剛使用 cURL 對 PokeAPI 進行了 API 調(diào)用!
路徑參數(shù)定義在 3.2.2 節(jié)中提到。路徑參數(shù)通常用于獲取單個對象的詳細信息。
例如,您想要獲取有關特定 Pokemon(如 Pikachu)的詳細信息。您可以使用“pikachu”作為路徑參數(shù)并插入到端點中。
要查看有關皮卡丘的具體詳細信息,我們的 API 請求的輸入是:
讓我們在 cURL 中編輯端點。cURL 命令現(xiàn)在如下所示:
curl -X GET https://pokeapi.co/api/v2/pokemon/pikachu
讓我們復制它,輸入到我們的 OS 終端并按回車鍵進行 API 調(diào)用。
輸出內(nèi)容很長,所以我就不放在這里了。它包含有關皮卡丘的能力和許多其他內(nèi)容的詳細信息。
如您所見,更改路徑參數(shù)就像編輯 API 端點一樣簡單。
API 可以提供一種方法來過濾、排序和限制返回的數(shù)據(jù)。該方法通常是通過查詢參數(shù)來實現(xiàn)的。有些文檔將查詢參數(shù)僅稱為參數(shù)。因此,很容易將查詢參數(shù)與路徑參數(shù)混淆。
對于 Poke API,只有幾個查詢參數(shù)。其中一個允許 API 請求限制返回的記錄數(shù)。它在 資源列表/分頁部分 中描述。
根據(jù)描述,您可以添加一個名為“l(fā)imit”的查詢參數(shù)和我們想要的記錄數(shù),API 將僅返回指定數(shù)量的記錄。 例如,您想獲取 Pokemon 表上的前 2 個 pokemon。那么我們的 API 請求的輸入將是:
好的,這部分有點棘手,所以請耐心等待。
limit=2
https://pokeapi.co/api/v2/pokemon?limit=2
curl -X GET https://pokeapi.co/api/v2/pokemon?limit=2
。讓我們運行它。以下是輸出{ "count":1281, "next":"https://pokeapi.co/api/v2/pokemon?offset=2&limit=2", "previous":null, "results":[ { "name":"bulbasaur", "url":"https://pokeapi.co/api/v2/pokemon/1/" }, { "name":"ivysaur", "url":"https://pokeapi.co/api/v2/pokemon/2/" } ] }
如果您不使用查詢參數(shù),返回的數(shù)據(jù)將僅顯示 2 個神奇寶貝,而不是 20 個。您已成功限制返回的數(shù)據(jù)。
注意:如果您有多個查詢參數(shù),則可以附加下一個參數(shù)并用與號(“&”)分隔它們。即
https://pokeapi.co/api/v2/pokemon?offset=2&limit=2