并非每個終端節(jié)點都會使用所有這些功能。例如,終端節(jié)點可能是 RESTful 服務(wù)的一部分,該服務(wù)不為單個 API 實現(xiàn)單獨的服務(wù)名稱,或者不包含版本號(這對于供內(nèi)部使用的 API 來說很常見)。

主機(jī): 托管 RESTful 服務(wù)的服務(wù)器的網(wǎng)絡(luò)位置。包括協(xié)議(HTTP 或 HTTPS)。

服務(wù): 擁有多項服務(wù)的公司需要在不同的地址提供每個 API。在上面的示例中,有一個 API(包含用于返回超級英雄列表的終端節(jié)點,但也可能包含其他與超級英雄相關(guān)的終端節(jié)點 — 例如,返回超級英雄宇宙列表的終端節(jié)點,例如“Marvel”或“DC”)。除了這個 API 之外,同一提供者還可能提供另一個 API(帶有端點 — 可以返回如“Snow White”、“Cinderella”等童話人物的信息)。

API 版本: API 版本用于跟蹤對 API 的更改。API 定期更新是正常的,但當(dāng)出現(xiàn)重大更改時,即需要指定新的 API 版本(例如“v2”)時。用戶可以繼續(xù)調(diào)用 “v1” 終端節(jié)點,直到他們明確升級到 “v2” 并修復(fù)任何重大更改。

資源類型:資源是一系列相關(guān)信息。例如,超級英雄資源包含有關(guān)特定超級英雄的屬性列表,例如他們來自哪里以及他們擁有哪些超能力。終端節(jié)點(末尾沒有任何資源標(biāo)識符)是一個列表終端節(jié)點,它返回一個超級英雄列表,每個超級英雄都包含一個唯一的資源標(biāo)識符。

資源標(biāo)識符:資源標(biāo)識符是用于檢索特定資源信息的唯一標(biāo)識符,通常位于終端節(jié)點 URL 的末尾。例如,如果 Superman 具有唯一 ID “1234”,則調(diào)用將返回有關(guān) Superman 的信息。如果您不知道正確的資源標(biāo)識符,可以通過調(diào)用上面的列表終端節(jié)點來查找。

查詢字符串參數(shù):您還可以在請求信息列表時將查詢字符串參數(shù)添加到請求的末尾。這些通常用于從結(jié)果中對列表進(jìn)行排序或篩選。在上面的示例中,該參數(shù)用于篩選目的:確保僅返回有關(guān)特定超級英雄的某些字段。在這種情況下,僅返回 and 字段,并保留其他字段。

REST API 請求剖析

API 端點只是 REST API 請求的一部分。在編寫需要與 REST API 交互的代碼時,您應(yīng)該了解請求的四個主要組件:終端節(jié)點、HTTP 方法、標(biāo)頭和請求正文。

HTTP 方法

對 REST API 端點的所有請求都包含 HTTP 方法。用于與 REST API 端點交互的最常見方法是:

例如,要讀取 Superman 的記錄,您需要向該端點發(fā)送 HTTP GET 請求。但是,如果要刪除他的記錄,您需要向相同的端點(標(biāo)識資源的 URL)發(fā)送 HTTP DELETE 請求。HTTP 方法指示要執(zhí)行的操作,端點標(biāo)識操作將受影響的資源。

HTTP 標(biāo)頭

HTTP 標(biāo)頭是隨 API 請求一起發(fā)送的鍵值對,用于向服務(wù)器提供額外信息。有時它們會自動添加到請求中,但有時您必須自己定義它們。以下是使用 cURL 添加到 API 請求的標(biāo)頭示例:Content-Type

curl -H "Content-Type: application/json" https://example.com/api/

如果您使用 Postman(一個用于測試 REST API 的漂亮圖形工具),這可能會自動為您生成一些標(biāo)頭。在下面的示例中,除 1 個標(biāo)頭外的所有標(biāo)頭都是自動生成的:

發(fā)送到 REST API 的最常見標(biāo)頭是:

授權(quán)標(biāo)頭的一個示例是 bearer token 選項。如果要向需要不記名令牌的 API 發(fā)送請求,可以在標(biāo)頭中發(fā)送請求,如下所示:

請求正文

在創(chuàng)建或更新資源時,您需要發(fā)送需要存儲的任何新數(shù)據(jù)。這應(yīng)該在請求正文中發(fā)送。您還需要告訴 API 您發(fā)送數(shù)據(jù)的格式 — 例如 JSON。下面介紹如何使用 Postman 發(fā)送帶有 JSON 正文的 POST 請求,其中包含新的超級英雄超人,并包含與他相關(guān)的不同類型的信息。

REST API 響應(yīng)剖析

REST API 響應(yīng)應(yīng)包含:

REST API JSON 響應(yīng)示例

1. GET 返回以下 JSON:

2. POST(以及請求正文中的數(shù)據(jù))返回以下 JSON:

3. DELETE(假設(shè)此資源存在)返回以下 JSON:

如何使用 RESTful API 創(chuàng)建、讀取、更新和刪除數(shù)據(jù)

要完全了解如何使用 REST API 創(chuàng)建、讀取、更新和刪除數(shù)據(jù),可以參考一些具體示例。我們將使用 Contentful API 來逐步引導(dǎo)您完成這些操作。如果您想深入學(xué)習(xí),可以免費注冊 Contentful。

注冊Contentful 帳戶并登錄后,您將自動進(jìn)入一個空間,這是一個工作區(qū),您可以在其中編輯要發(fā)布到網(wǎng)站和應(yīng)用程序的所有內(nèi)容

要開始與 Contentful REST API 交互,您需要一個用于身份驗證的訪問令牌。要獲取您的訪問令牌,請轉(zhuǎn)到“設(shè)置”→“CMA 令牌”,然后單擊“創(chuàng)建個人訪問令牌”。為您的令牌命名,記下它,然后單擊 “Generate” 按鈕。現(xiàn)在復(fù)制您的訪問令牌并將其保存在安全的地方。

我們現(xiàn)在要檢查您的 API 密鑰是否有效。我們建議使用 Postman 來實現(xiàn)此目的。您需要向 CMA 令牌發(fā)出 GET 請求并傳入“Bearer Token”授權(quán)標(biāo)頭,如前所述。

這將返回 a 和一些 JSON。如果您滾動瀏覽 JSON,您應(yīng)該能夠找到空間的 ID。復(fù)制它并將其保存在某個位置,因為您在下一步中會需要它。

使用 HTTP GET 讀取資源列表

為了演示如何使用 Contentful REST API,我們將練習(xí)讀取、創(chuàng)建、更新和刪除一些環(huán)境

在 Contentful 中,環(huán)境是維護(hù)多個內(nèi)容版本的一種方式。每個帳戶都從一個名為 master 的默認(rèn)環(huán)境開始,但很快您將需要創(chuàng)建其他環(huán)境,例如沙盒環(huán)境,用于測試您希望處理的一些新內(nèi)容,而不會影響 master 環(huán)境。

要從 Contentful 讀取環(huán)境列表,請向以下對象發(fā)送 GET 請求:

https://api.contentful.com/spaces/{space_id}/environments

將 {space_id} 替換為您之前保存的空間 ID,并附加以下 HTTP 標(biāo)頭:

Authorization: Bearer <CMA_TOKEN>

將 <CMA_TOKEN> 替換為您的實際 CMA 令牌。

這將返回一些 JSON,其中包含環(huán)境列表和相關(guān)信息,以及 OK 狀態(tài)代碼。

使用 HTTP POST 創(chuàng)建新資源

要在 Contentful 中創(chuàng)建新的環(huán)境資源,請向以下對象發(fā)送 HTTP POST 請求:

https://api.contentful.com/spaces/{space_id}/environments

{space_id}替換為您之前保存的空間的 ID,并附加以下 HTTP 標(biāo)頭:

Authorization: Bearer <CMA_TOKEN>

Content-Type: application/vnd.contentful.management.v1+json

在請求正文中添加要創(chuàng)建的環(huán)境的名稱:

body: {

  "name": "My environment name"

}

這將在 Contentful 應(yīng)用程序中創(chuàng)建一個新環(huán)境,您可以通過使用瀏覽器登錄或調(diào)用空間的“列表環(huán)境”端點來查看該環(huán)境:

GET https://api.contentful.com/spaces/{space_id}/environments

當(dāng)您使用 HTTP POST 在 Contentful 中創(chuàng)建資源時,它將具有自動生成的 ID,或者您可以使用 HTTP PUT 方法自行指定一個 ID 來創(chuàng)建資源。

使用 HTTP PUT 更新資源

我們將使用 HTTP PUT 請求通過更改名稱來更新 Contentful 中的環(huán)境。為此,請向以下 URL 發(fā)送 HTTP PUT 請求,其中 {environment_id} 是要更改名稱的環(huán)境的 ID,{space_id} 是空間的 ID:

https://api.contentful.com/spaces/{space_id}/environments/{environment_id}

使用以下 HTTP 標(biāo)頭:

Authorization: Bearer <CMA_TOKEN>

Content-Type: application/vnd.contentful.management.v1+json

并在請求正文中發(fā)送要創(chuàng)建的環(huán)境的名稱:

body: {

  "name": "My new environment name"

}

最后,您需要指定要更新的環(huán)境版本,方法是添加以下標(biāo)頭,并替換為正確的版本:

<existing_version>

X-Contentful-Version: <existing_version>

請注意,這是 Contentful REST API 特有的功能。在使用其他 REST API 進(jìn)行更新時,您可能不需要做同樣的事情。但是,許多 REST API 添加了與此類似的額外功能,您將在閱讀其 API 文檔時發(fā)現(xiàn)這一點。

如果您不確定最新版本是什么,可以通過向同一終端節(jié)點發(fā)送 GET 請求來了解,響應(yīng)會通知您。

顯示 GET 請求的 Postman

使用 HTTP DELETE 刪除資源

要刪除 Contentful 中空間內(nèi)的特定環(huán)境,請向以下 URL 發(fā)送 HTTP DELETE 請求,其中 {space_id} 是空間的 ID,{environment_id} 是要刪除的環(huán)境的 ID:

https://api.contentful.com/spaces/{space_id}/environments/{environment_id}

并使用以下 HTTP 標(biāo)頭:

Authorization: Bearer <CMA_TOKEN>

REST API 總結(jié)

API 是一種使用 JavaScript、PHP、Python、Java、Ruby 和 C# 等編程語言在不同軟件服務(wù)之間進(jìn)行通信的方式。REST 是一組用于創(chuàng)建特定類型 API 的規(guī)則和準(zhǔn)則,并非所有 API 都是 RESTful API。

REST 代表 Representational State Transfer,特點包括:

瀏覽 Contentful API 文檔以鞏固您對 REST API 的理解。

常見問題解答

常見問題解答

REST API 是什么意思?

REST API 是遵循 REST(表示性狀態(tài)傳輸)原則的 API,使系統(tǒng)之間能夠輕松通信。RESTful 系統(tǒng)在客戶端和服務(wù)器之間具有分離的關(guān)注點,這意味著每個系統(tǒng)都可以彼此獨立地實現(xiàn)。REST API 是無狀態(tài)的,這意味著每個 API 請求都完全獨立于任何以前的請求。

REST API 的工作原理是什么?

REST API 向客戶端公開端點,允許它們調(diào)用服務(wù)器。客戶端向終端節(jié)點發(fā)送 HTTP 請求,服務(wù)器接收請求。

在大多數(shù)情況下,一些身份驗證詳細(xì)信息會隨請求一起發(fā)送,并且服務(wù)器會檢查是否允許客戶端發(fā)出請求。由于 RESTful 系統(tǒng)是無狀態(tài)的,因此需要對每個請求重新驗證客戶端。

然后,服務(wù)器處理請求并返回響應(yīng),通常采用 JSON 或類似格式。它還返回 HTTP 狀態(tài)代碼以通知用戶成功或失敗。

為什么使用 REST API?

RESTful 服務(wù)允許在客戶端和服務(wù)器之間以及服務(wù)器的不同部分之間分離關(guān)注點。

REST API 易于使用 — 它們使用 HTTP 調(diào)用,這是 Web 的語言。開發(fā)人員已經(jīng)熟悉這一點。

REST API 也是可伸縮的,原因有兩個:

如何找到更多同類API?

冪簡集成是國內(nèi)領(lǐng)先的API集成管理平臺,專注于為開發(fā)者提供全面、高效、易用的API集成解決方案。冪簡API平臺可以通過以下兩種方式找到所需API:通過關(guān)鍵詞搜索API、或者從API Hub分類頁進(jìn)入尋找。

原文鏈接:https://www.contentful.com/blog/what-is-a-rest-api/

上一篇:

API審核的核心概念是什么

下一篇:

什么是OpenAPI?
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費