动态

详情 返回 返回

理解 REST 約束:為 Web 開發帶來超乎想象的便利 - 动态 详情

REST 是 Representational State Transfer 的縮寫,是 Roy Fielding 於 2000 年提出的一種通過 HTTP 設計鬆散耦合應用程序的架構風格,其主要應用於 Web 服務的開發。REST 不是強制性的,可以不遵守,但它提供了一種高級設計指南。

架構約束

REST 定義了六種架構約束來構成 Web 服務。RESTful API 是指使用 HTTP 並遵循 REST 原則的 API。這些架構約束有以下作用:

  • 提高系統的可伸縮性和可靠性:通過客户端-服務器分離、無狀態和分層系統等架構約束,使系統更容易擴展和維護,提高系統的可靠性;
  • 提高系統的性能:使用緩存可以減少對服務器資源的消耗,從而提高系統的性能和可伸縮性;
  • 提高系統的安全性和隔離性:分層系統可以提供更好的安全性和隔離性,使系統更加安全可靠;
  • 降低開發和維護成本:通過統一接口可以使開發人員更加容易地理解和使用 API,同時按需代碼可以減少服務器端的負載,提高了客户端的靈活性和可擴展性。

一個 RESTful API,需要滿足以下六大架構約束:

  1. 統一接口
  2. CS (客户端-服務器分離)
  3. 無狀態
  4. 緩存
  5. 系統分層
  6. 按需編碼(可選)

接下來我們來詳細看看這六大架構約束。

CS(客户端-服務器分離)

這是 REST 風格的基本原則之一:將客户端和服務器之間分離,使其能夠分別進行演化和擴展,提高了系統的可伸縮性和可靠性。通過客户端-服務器分離,客户端和服務器可以分別由不同的開發團隊進行開發和維護,並且可以使客户端和服務器之間的協議更加簡單和清晰。

無狀態

服務器不應存儲客户端的狀態信息。每個請求都應該包含足夠的信息以便服務器可以處理請求,這樣可以使服務器更容易擴展,提高系統的可伸縮性和可靠性。無狀態的設計可以降低系統的複雜度,並且可以減少對服務器資源的消耗。

緩存

服務器應該儘可能地使用緩存來提高性能和可擴展性。客户端可以緩存服務器返回的響應,以減少對服務器的請求;服務器也可以緩存請求的響應,以減少對後端系統的請求。緩存可以減少網絡帶寬的使用,提高系統的性能和可伸縮性。

統一接口

REST 使用一組標準接口來實現客户端和服務器之間的通信。這些接口包括資源的標識、資源的表示、自描述消息、超媒體作為應用程序狀態的引擎等。通過使用這些標準接口,REST 可以使客户端和服務器之間的通信更加簡單和可靠。統一接口可以使開發人員更加容易地理解和使用 API。

分層系統

REST 允許系統被分成多個層次,每個層次都可以有自己的功能。這樣可以提高系統的可伸縮性和可靠性,同時也提供了更好的安全性和隔離性。分層系統可以使開發人員更加容易地擴展和修改系統,也可以提高系統的可靠性和安全性。

按需代碼(可選)

REST 可以通過向客户端傳輸可執行的代碼(例如 JavaScript)來擴展客户端的功能。這樣可以減少服務器端的負載,同時也提高了客户端的靈活性和可擴展性。按需代碼可以使開發人員更加容易地擴展和修改客户端功能。

最後需要注意的是,這些約束並不是死的,如果違反了一兩個,也不影響稱為 RESTful API,但不符合“真正的 RESTful”約束。

知識擴展:

瞭解更多 REST API 相關知識。

  • REST 與 SOAP 之間的差異
  • REST API 常用的安全認證方式
user avatar nihaojob 头像 linx 头像 chunzhendegaoshan 头像 b_a_r_a_n 头像 limingxin 头像 wqjiao 头像 russell221 头像 huaihuaidedianti 头像 _60c4a10050259 头像 liudamao 头像 qeasy_cloud 头像 o2team 头像
点赞 15 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.