本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
什麼是 REST?
在高階,表示式狀態轉移 (REST) 是一種軟體架構,會針對 API 應如何運作施加條件。REST 最初是建立做為準則,以管理網際網路等複雜網路上的通訊。您可以使用以 REST 為基礎的架構,大規模支援高效能和可靠的通訊。您可以輕鬆實作和修改它,為任何 API 系統提供可見性和跨平台可攜性。
API 開發人員可以使用數種不同的架構來設計 APIs。遵循 REST 架構樣式的 APIs 稱為 REST APIs。實作 REST 架構的 Web 服務稱為 RESTful Web 服務。RESTful API 一詞通常是指 RESTful Web APIs。不過,您可以交替使用 REST API 和 RESTful API。
以下是 REST 架構樣式的一些原則:
統一界面
統一界面是任何 RESTful Web 服務設計的基礎。它表示伺服器以標準格式傳輸資訊。格式化的資源稱為 REST 中的表示法。此格式可能與伺服器應用程式上資源的內部表示方式不同。例如,伺服器可以將資料儲存為文字,但以 HTML 表示格式傳送。
統一界面施加了四個架構限制:
-
請求應識別資源。他們會使用統一的資源識別符來執行此操作。
-
用戶端在資源表示法中有足夠的資訊,可視需要修改或刪除資源。透過傳送進一步描述資源的中繼資料,伺服器符合此條件。
-
用戶端會收到如何進一步處理表示的資訊。伺服器會透過傳送包含用戶端最佳使用方式中繼資料的自我描述訊息來達成此目的。
-
用戶端會收到完成任務所需的所有其他相關資源的相關資訊。伺服器會透過在 表示法中傳送超連結來達成此目的,以便用戶端動態探索更多資源。
無狀態
在 REST 架構中,無狀態是指伺服器獨立於先前所有請求完成每個用戶端請求的通訊方法。用戶端可以任何順序請求資源,而且每個請求都是無狀態的,或與其他請求隔離。此 REST API 設計限制條件表示伺服器每次都能完全了解並滿足請求。
分層系統
在分層系統架構中,用戶端可以連線到用戶端和伺服器之間的其他授權中介,而且仍會收到伺服器的回應。伺服器也可以將請求傳遞至其他伺服器。您可以設計 RESTful Web 服務在多個伺服器上執行,其中包含多個層級,例如安全性、應用程式和商業邏輯,共同滿足用戶端請求。這些圖層對用戶端而言是隱藏的。
快取性
RESTful Web 服務支援快取,這是在用戶端或媒介上存放一些回應的程序,以改善伺服器回應時間。例如,假設您造訪的網站在每個頁面上都有通用的標頭和頁尾影像。每次您造訪新的網站頁面時,伺服器都必須重新傳送相同的映像。為了避免這種情況,用戶端會在第一次回應後快取或存放這些映像,然後直接從快取使用映像。RESTful Web 服務使用將自己定義為可快取或不可快取的 API 回應來控制快取。
什麼是 RESTful API?
RESTful API 是兩個電腦系統用來透過網際網路安全地交換資訊的界面。大多數商業應用程式都必須與其他內部和第三方應用程式通訊,才能執行各種任務。例如,若要產生每月薪資單,您的內部帳戶系統必須與客戶的銀行系統共用資料,以自動開立發票並與內部時間表應用程式通訊。RESTful APIs支援此資訊交換,因為它們遵循安全、可靠且高效的軟體通訊標準。
RESTful APIs如何運作?
RESTful API 的基本函數與瀏覽網際網路相同。當用戶端需要資源時,會使用 API 聯絡伺服器。API 開發人員說明用戶端應如何使用伺服器應用程式 API 文件中的 REST API。以下是任何 REST API 呼叫的一般步驟:
-
用戶端會將請求傳送至伺服器。用戶端遵循 API 文件,以伺服器了解的方式格式化請求。
-
伺服器會驗證用戶端,並確認用戶端有權提出該請求。
-
伺服器會收到請求並在內部處理。
-
伺服器會傳回回應給用戶端。回應包含告知用戶端請求是否成功的資訊。回應也包含用戶端請求的任何資訊。
REST API 請求和回應詳細資訊會因 API 開發人員設計 API 的方式而略有不同。