RESTfull是什麼

老僧觀天下發表於2020-10-10

經常做介面測試,會看很多介面文件,那怎麼識別研發的介面設計是否足夠規範,是否符合一些行業標準或準則。那認識瞭解RESTfull,可以讓我們更具有專業性。讓我們對介面文件的閱、介面合理性設計識別,做到有的放矢。

REST是什麼

REST全稱是Representational State Transfer,中文意思是表述(編者注:通常譯為表徵)性狀態轉移。

REST本身並沒有創造新的技術、元件或服務
REST指的是一組架構約束條件和原則。如果一個架構符合REST的約束條件和原則,我們就稱它為RESTful架構。

理論上REST架構風格並不是繫結在HTTP上,只不過目前HTTP是唯一與REST相關的例項。 所以我們這裡描述的REST也是通過HTTP實現的REST。

RESTfull主要做什麼

結合REST的原則,RESTfull從下面幾個方面做了約束和原則。

資源與URI
統一資源介面
資源的表述
資源的連結
狀態的轉移

1. 資源與URI

所有的資源都有一個資源標誌符

http://example.com/users/
http://example.com/class/
http://example.com/teacher/

2. 統一資源介面

冪等性:對同一REST介面的多次訪問,得到的資源狀態是相同的。
安全性:對該REST介面訪問,不會使伺服器端資源的狀態發生改變。

示例

1.傳統URL請求格式:
http://127.0.0.1/user/query/1 GET 根據使用者id查詢使用者資料
http://127.0.0.1/user/save POST 新增使用者
http://127.0.0.1/user/update POST 修改使用者資訊
http://127.0.0.1/user/delete GET/POST 刪除使用者資訊

2.RESTful請求格式:
http://127.0.0.1/user/1 GET 根據使用者id查詢使用者資料
http://127.0.0.1/user POST 新增使用者
http://127.0.0.1/user PUT 修改使用者資訊
http://127.0.0.1/user DELETE 刪除使用者資訊

3. 資源的表述

服務端可以通過Content-Type告訴客戶端資源的表述形式。

資源的表述形式有:文字資源可以採用html、xml、json等格式,圖片可以使用PNG或JPG展現出來

4. 資源的連結

很多人在設計RESTful架構時,使用很多時間來尋找漂亮的URI,而忽略了超媒體。所以,應該多花一些時間來給資源的表述提供連結,而不是專注於"資源的CRUD"。

比如下一頁的連結地址、資源的連結地址都應該符合RESTful的設計思路。

5. 狀態的轉移

原則上要求無狀態通訊原則。

這裡說的無狀態通訊原則,並不是說客戶端應用不能有狀態,而是指服務端不應該儲存客戶端狀態。

推薦學習

感興趣的話,瞭解下HTTP為什麼定義了這麼多請求型別

掃一掃,關注我

相關文章