REST設計風格

2021-09-20 08:30:20 字數 1913 閱讀 5975

2023年,roy thomas fielding博士在他的博士**《architectural styles and the design of network-based software architectures》中提出了幾種軟體應用的架構風格,rest作為其中的一種架構風格在這篇**中進行了概括性的介紹。

rest:representational state transfer的縮寫,翻譯:「具象狀態傳輸」。一般解釋為「表現層狀態轉換」。

rest是設計風格而不是標準。是指客戶端和伺服器的互動形式。我們需要關注的重點是如何設計rest風格的網路介面。

rest的特點:

表現:資源的表現形式。txt格式、html格式、json格式、jpg格式等。瀏覽器通過url確定資源的位置,但是需要在http請求頭中,用accept和content-type欄位指定,這兩個欄位是對資源表現的描述。

狀態轉換:客戶端和伺服器互動的過程。在這個過程中,一定會有資料和狀態的轉化,這種轉化叫做狀態轉換。其中,get表示獲取資源,post表示新建資源,put表示更新資源,delete表示刪除資源。http協議中最常用的就是這四種操作方式。

如何設計符合restful風格的api:

將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。

REST設計風格

2000年,roy thomas fielding博士在他的博士 architectural styles and the design of network based software architectures 中提出了幾種軟體應用的架構風格,rest作為其中的一種架構風格在這篇 中進行了概括...

用REST風格設計部落格API

模仿 github,設計乙個部落格 的 api 1 獲取自己部落格下的所有文章get api v1 user articles檢視文章時,使用get方法。這裡用單數user指代自己乙個人且不用指定自己使用者名稱或者id。v1代表版本號。響應內容 失敗響應 2 根據文章id獲取自己的文章get api...

REST架構風格

rest風格通過uri訪問得到的資訊是自我描述的,包括了資訊本身和表示方式 html,xml,資料流等 資訊的描述是採用最通用的協議 http 超文字轉換協議 來進行的.客戶端根據資訊的表示解析和展示資訊本身.而互動是通過http的幾個基本操作 get,put,post,delete 來實現.一些看...