使用Curl發出REST API請求

應用程序接口(API)是一組允許軟件程序相互通信的定義和協議。

術語REST代表代表性的狀態轉移。 它是一種體系結構樣式,由創建Web服務時要使用的一組約束組成。

RESTful API是遵循REST體系結構的API。 通常,REST API使用HTTP協議發送和檢索數據以及JSON格式的響應。 您可以使用標準的HTTP方法通過API創建,查看,更新或刪除資源。

要測試RESTful API並與之交互,可以使用任何可以發出HTTP請求的庫或工具。

API請求由四個不同部分組成:

  • 端點。 這是客戶端用於與服務器通信的URL。
  • HTTP方法。 它告訴服務器客戶端要執行什麼操作。 最常見的方法是 GET POST PUT DELETEPATCH
  • 標頭。 用於在服務器和客戶端之間傳遞其他信息,例如授權。
  • 身體。 數據發送到服務器。

在本文中,我們將討論如何使用 curl 與RESTful API進行交互。 curl 是用於從遠程服務器或向遠程服務器傳輸數據的命令行實用程序。 默認情況下,它已安裝在macOS和大多數Linux發行版上。

捲曲選項

的語法 curl 命令如下:

curl [options] [URL...]

以下是我們發出請求時將使用的選項:

  • -X--request -要使用的HTTP方法。
  • -i--include -包括響應頭。
  • -d--data -要發送的數據。
  • -H--header -要發送的其他標頭。

HTTP GET#

GET方法從服務器請求特定資源。

使用進行HTTP請求時,GET是默認方法 curl。 以下是向所有帖子的JSON表示形式向JSONPlaceholder API發出GET請求的示例:

curl https://jsonplaceholder.typicode.com/posts

要過濾結果,請使用查詢參數:

curl https://jsonplaceholder.typicode.com/posts?userId=1

HTTP POST#

POST方法用於在服務器上創建資源。 如果資源存在,則將其覆蓋。

以下命令使用通過指定的數據發出POST請求 -d 選項:

curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts

請求主體的類型使用 Content-Type 標頭。 默認情況下,不指定此標頭時 curl 用途 Content-Type: application/x-www-form-urlencoded

要發送JSON格式的數據,請將主體類型設置為 application/json

curl -X POST -H "Content-Type: application/json"     -d '{"userId": 5, "title": "Hello World", "body": "Post body."}'     https://jsonplaceholder.typicode.com/posts

HTTP PUT#

PUT方法用於更新或替換服務器上的資源。 它將指定資源的所有數據替換為請求數據。

curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5

HTTP補丁號

PUT方法用於對服務器上的資源進行部分更新。

curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5

HTTP刪除

DELETE方法從服務器中刪除指定的資源。

curl -X DELETE https://jsonplaceholder.typicode.com/posts/5

驗證號碼

如果API端點需要身份驗證,則需要獲取訪問密鑰。 否則,API服務器將以“禁止訪問”或“未經授權”響應消息進行響應。

獲取訪問密鑰的過程取決於您使用的API。 獲得訪問令牌後,可以在標頭中發送它:

curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

結論#

我們已經向您展示了如何使用 curl 發出測試API請求。 有關更多信息 curl,請訪問“捲曲文檔”頁面。

如果您有任何疑問或反饋,請隨時發表評論。

捲毛端子

Sidebar