經常做介面測試,會看很多介面文件,那怎麼識別研發的介面設計是否足夠規範,是否符合一些行業標準或準則。那認識瞭解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為什麼定義了這麼多請求型別
掃一掃,關注我