2023年,roy thomas fielding博士在他的博士**《architectural styles and the design of network-based software architectures》中提出了幾種軟體應用的架構風格,rest作為其中的一種架構風格在這篇**中進行了概括性的介紹。
rest:representational state transfer的縮寫,翻譯:「具象狀態傳輸」。一般解釋為「表現層狀態轉換」。
rest是設計風格而不是標準。是指客戶端和伺服器的互動形式。我們需要關注的重點是如何設計rest風格的網路介面。
將api部署在專用網域名稱下:
或者將api放在主網域名稱下:
將api的版本號放在url中。
路徑表示api的具體**。每個**代表一種資源。 資源作為**,**中不能有動詞只能有名詞,一般名詞要與資料庫的表名對應。而且名詞要使用複數。
錯誤示例:
正確示例:
#獲取單個商品
#獲取所有商品
對於資源的具體操作型別,由http動詞表示。 常用的http動詞有四個。
get select :從伺服器獲取資源。
post create :在伺服器新建資源。
put update :在伺服器更新資源。
delete delete :從伺服器刪除資源。
示例:
#獲取指定商品的資訊
get
#新建商品的資訊
post
#更新指定商品的資訊
put
#刪除指定商品的資訊
delete
如果資源資料較多,伺服器不能將所有資料一次全部返回給客戶端。api應該提供引數,過濾返回結果。 例項:
#指定返回資料的數量
?limit=10
#指定返回資料的開始位置
?offset=10
#指定第幾頁,以及每頁資料的數量
?page=2&per_page=20
伺服器向使用者返回的狀態碼和提示資訊,常用的有:
200 ok :伺服器成功返回使用者請求的資料
201 created :使用者新建或修改資料成功。
202 accepted:表示請求已進入後台排隊。
400 invalid request :使用者發出的請求有錯誤。
401 unauthorized :使用者沒有許可權。
403 forbidden :訪問被禁止。
404 not found :請求針對的是不存在的記錄。
406 not acceptable :使用者請求的的格式不正確。
500 internal server error :伺服器發生錯誤。
一般來說,伺服器返回的錯誤資訊,以鍵值對的形式返回。
針對不同結果,伺服器向客戶端返回的結果應符合以下規範。
#返回商品列表
get
#返回單個商品
get /cup
#返回新生成的商品
post
#返回乙個空文件
delete
伺服器返回的資料格式,應該盡量使用json,避免使用xml。
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置 因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致api構架的流行,甚至出現 api first 的設計思想。restful api是目前比較成熟的一套網際網路應用程式的...
RESTful API 設計指南
原文 網路應用程式,分為前端和後端兩個部分。當前的發展趨勢,就是前端裝置層出不窮 手機 平板 桌面電腦 其他專用裝置.因此,必須有一種統一的機制,方便不同的前端裝置與後端進行通訊。這導致 api 構架的流行,甚至出現 api first 的設計思想。restful api 是目前比較成熟的一套網際網...