
Python語(yǔ)言調(diào)用免費(fèi)查詢ip地址API
在圖片中,你可以看到方法是 GET 。端點(diǎn)是 https://pokeapi.co/api/v2/pokemon
后一部分 {id or name}
,稱為路徑參數(shù)。路徑參數(shù)可以是必需的,也可以是可選的。對(duì)于 Poke API,它是可選的。你怎么知道的?它在 資源列表/分頁(yè)部分 中提到。(調(diào)用任何沒(méi)有資源 ID 或名稱的 API 端點(diǎn)將…)
我們需要的最后一個(gè)輸入是授權(quán)。像這樣的公共 API 意味著任何人都可以在未經(jīng)授權(quán)的情況下使用它。因此授權(quán)方法是 No Auth。
總而言之,以下是我們將用來(lái)從 Pokemon 表中獲取數(shù)據(jù)的輸入:
您可以在第 1 部分文章的術(shù)語(yǔ)部分中看到更多類型的授權(quán)。
讓我們根據(jù)上面的輸入構(gòu)建 cURL 命令
curl [OPTIONS] [URL]
curl https://pokeapi.co/api/v2/pokemon
-X
(簡(jiǎn)稱 ) --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 機(jī)器上的成功輸出(我對(duì)其進(jìn)行了一些格式化以使其看起來(lái)更漂亮)。
{ "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 的默認(rèn) API 調(diào)用方法已經(jīng)是 GET,因此您實(shí)際上不必提供
-X GET
選項(xiàng)部分。因此該命令可以縮寫為:curl https://pokeapi.co/api/v2/pokemon
。但是記住此選項(xiàng)很有用,因?yàn)槟鷮?lái)可能想要使用 POST 方法,因此下面的命令仍將保留該-X GET
選項(xiàng)。
恭喜,您剛剛使用 cURL 對(duì) PokeAPI 進(jìn)行了 API 調(diào)用!
路徑參數(shù)定義在 3.2.2 節(jié)中提到。路徑參數(shù)通常用于獲取單個(gè)對(duì)象的詳細(xì)信息。
例如,您想要獲取有關(guān)特定 Pokemon(如 Pikachu)的詳細(xì)信息。您可以使用“pikachu”作為路徑參數(shù)并插入到端點(diǎn)中。
要查看有關(guān)皮卡丘的具體詳細(xì)信息,我們的 API 請(qǐng)求的輸入是:
讓我們?cè)?cURL 中編輯端點(diǎn)。cURL 命令現(xiàn)在如下所示:
curl -X GET https://pokeapi.co/api/v2/pokemon/pikachu
讓我們復(fù)制它,輸入到我們的 OS 終端并按回車鍵進(jìn)行 API 調(diào)用。
輸出內(nèi)容很長(zhǎng),所以我就不放在這里了。它包含有關(guān)皮卡丘的能力和許多其他內(nèi)容的詳細(xì)信息。
如您所見(jiàn),更改路徑參數(shù)就像編輯 API 端點(diǎn)一樣簡(jiǎn)單。
API 可以提供一種方法來(lái)過(guò)濾、排序和限制返回的數(shù)據(jù)。該方法通常是通過(guò)查詢參數(shù)來(lái)實(shí)現(xiàn)的。有些文檔將查詢參數(shù)僅稱為參數(shù)。因此,很容易將查詢參數(shù)與路徑參數(shù)混淆。
對(duì)于 Poke API,只有幾個(gè)查詢參數(shù)。其中一個(gè)允許 API 請(qǐng)求限制返回的記錄數(shù)。它在 資源列表/分頁(yè)部分 中描述。
根據(jù)描述,您可以添加一個(gè)名為“l(fā)imit”的查詢參數(shù)和我們想要的記錄數(shù),API 將僅返回指定數(shù)量的記錄。 例如,您想獲取 Pokemon 表上的前 2 個(gè) pokemon。那么我們的 API 請(qǐng)求的輸入將是:
好的,這部分有點(diǎn)棘手,所以請(qǐng)耐心等待。
limit=2
https://pokeapi.co/api/v2/pokemon?limit=2
curl -X GET https://pokeapi.co/api/v2/pokemon?limit=2
。讓我們運(yùn)行它。以下是輸出{ "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 個(gè)神奇寶貝,而不是 20 個(gè)。您已成功限制返回的數(shù)據(jù)。
注意:如果您有多個(gè)查詢參數(shù),則可以附加下一個(gè)參數(shù)并用與號(hào)(“&”)分隔它們。即
https://pokeapi.co/api/v2/pokemon?offset=2&limit=2
對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對(duì)比試用API 限時(shí)免費(fèi)