什麼是 REST API 及其工作原理 – 初學者指南
已發表: 2023-11-09REST API(即表述性狀態傳輸應用程式介面)是一組允許系統透過 Internet 相互通訊的規則和約定。 它是一種廣泛用於設計網頁應用程式的體系結構風格。
REST 是基於客戶端-伺服器模型,其中客戶端(例如 Web 瀏覽器或行動應用程式)向伺服器發出請求,伺服器使用請求的資料回應或執行某些操作。 以下是與 REST API 相關的關鍵概念的細分。
資源
在 REST 中,一切都被視為資源,可以是特定的資料片段或物件。 例如,部落格文章、使用者個人資料或產品都可以是資源。
統一資源標識符
每個資源都由唯一的統一資源識別碼 (URI) 標識,通常稱為 URI。 URI 表示伺服器上資源的位址。
HTTP 方法
REST API 使用 HTTP 方法來定義要對資源執行的動作。 最常用的方法如下。
- GET:此方法傳回資源的表示形式。
- POST:建立新資源。
- PUT:此方法更新或取代現有資源。
- DELETE:刪除資源。
陳述
資源可以用多種格式表示,包括 JSON、XML 和 HTML。 客戶端和伺服器使用 HTTP 標頭就表示格式達成協議。
無狀態通信
REST API 是無狀態的,這意味著從客戶端到伺服器的每個請求都必須包含理解和處理該請求的所有必要資訊。 伺服器在請求之間不維護任何特定於客戶端的狀態。
回應
當伺服器收到請求時,它會處理該請求並發迴回應。 此回應通常包括指示請求成功或失敗的狀態代碼(例如,200表示成功,404表示未找到),以及所要求的資料或相關資訊。
「REST」和「API」分別代表什麼?
「REST」代表表述性狀態轉移。 它是一種用於設計網頁應用程式和 Web 服務的架構風格。
“API”代表應用程式介面。 它是一組允許各種軟體程式相互連接的規則和協定。 API 定義了不同軟體系統元件如何互動和交換資料。
組合起來時,「REST API」指的是遵循 REST 架構風格原則的 API。 它是一組用於建立可使用 HTTP(超文本傳輸協定)透過 Internet 存取的 Web 服務的規則和約定。 REST API 為系統提供了一種標準化的方式來通訊和交換數據,通常採用 JSON 或 XML 的形式。
REST API 如何運作?
REST API(表述性狀態傳輸應用程式介面)是基於客戶端-伺服器模型工作,並遵循一組原則和約定。 以下是 REST API 工作原理的逐步概述。
1. 客戶端發送請求
客戶端可以是 Web 瀏覽器、行動應用程式或任何其他應用程序,透過向伺服器發送 HTTP 請求來發起通訊。 此請求包括所需資源的 URL(統一資源定位符)和指示要執行的操作的 HTTP 方法(GET、POST、PUT、DELETE 等)。
2. 伺服器接收請求
伺服器接收請求並根據提供的 URL 和 HTTP 方法進行處理。 伺服器識別所要求的資源並確定要執行的適當操作。
3. 伺服器處理請求
根據 HTTP 方法,伺服器對請求的資源執行必要的操作。 例如:
- GET:伺服器檢索請求的資源並將其在回應中傳送回客戶端。
- POST:伺服器根據客戶端所傳送的資料建立新的資源。
- PUT:伺服器以客戶端提供的資料更新或取代現有資源。
- DELETE:伺服器從系統中刪除要求的資源。
4. 伺服器發送回應
伺服器處理請求後產生 HTTP 回應。 此回應包括指示請求結果的狀態代碼(例如,200 表示成功,404 表示未找到),並且可以包含所要求的資料或相關資訊。 回應通常以 JSON 或 XML 等格式傳送回客戶端。
5. 客戶端收到回應
HTTP 回應由伺服器傳送給客戶端。 它解釋狀態代碼以確定請求的成功或失敗。 如果回應包含數據,客戶端可以根據需要提取並使用該數據。
6. 客戶端處理回應
客戶端應用程式處理收到的回應,提取相關訊息,並根據回應資料執行任何所需的操作。 這可能涉及更新使用者介面、本機儲存資料或觸發對 API 的後續請求。
對於客戶端和伺服器之間的每次交互,都會重複此請求-回應循環。 REST API 是無狀態的,這意味著來自客戶端的每個請求都必須包含伺服器理解和處理請求的所有必要資訊。 伺服器在請求之間不維護任何特定於客戶端的狀態。
為什麼選擇 REST API?
總的來說,選擇 REST API 可以提供簡單性、可擴充性、互通性以及與現有 Web 標準的兼容性。 這些因素使 REST 成為建立 API 的流行選擇,從而實現各種應用程式中不同系統之間的高效通訊和整合。
選擇 REST API 對您的應用程式開發有利有多種原因。
1. 簡單易用
REST API 對於開發人員和與 API 互動的用戶端而言都相對簡單且易於理解。 它們使用標準 HTTP 方法並遵循基於資源的方法,使其易於使用和學習。
2. 可擴展性
REST API 設計為可擴展的,可以處理大量客戶端和請求。 它們利用底層 HTTP 協定的可擴充性功能,例如負載平衡和緩存,可以增強 API 的效能和回應能力。
3. 靈活性和互通性
REST API 支援不同系統和平台之間的互通性。 可以使用大多數程式語言中提供的標準 HTTP 庫來存取它們,從而允許客戶端使用 API,無論其技術堆疊如何。 這有利於與第三方服務的集成,並支援開發多樣化的客戶端應用程式。
4. 無國籍性質
REST API 是無狀態的,這意味著來自客戶端的每個請求都包含伺服器處理它所需的所有必要資訊。 這種簡單性使得 API 更具可擴展性,因為伺服器不需要在請求之間維護特定於客戶端的狀態。 它還允許更好的容錯能力和更容易的負載平衡。
5. 廣泛採用和社區支持
REST 是一種廣泛採用的架構風格,並且有大量的開發人員社群和資源可供支援。 這意味著您可以找到大量專為使用 REST API 而建立的程式庫、框架和工具,從而使開發任務變得更輕鬆、更有效率。
6. 與網路標準的兼容性
REST API 建構在 HTTP 協定之上,利用其功能並遵守其標準。 這種相容性確保了 REST API 可以與現有的 Web 技術無縫集成,例如快取機制、安全性協定 (HTTPS) 和驗證機制(例如 OAuth)。
結論
總之,REST API 提供了一種標準化且可擴展的方法來建立 Web 服務並促進系統之間的通訊。 透過遵循 REST 原則,例如使用 HTTP 方法、基於資源的 URL 和自描述回應,REST API 提供了簡單性、靈活性和互通性。
REST API 與語言無關,可以在各種平台上實現,從而可以在不同系統之間輕鬆整合和通訊。 它們被廣泛採用和支持,有一個大型社區提供開發資源和工具。