天天看點

簡單了解REST風格設計

前言

API

API(Application Programming Interface,應用程式接口)是一些預先定義的接口(如函數、HTTP接口),或指軟體系統不同組成部分銜接的約定。 用來提供應用程式與開發人員基于某軟體或硬體得以通路的一組例程,而又無需通路源碼,或了解内部工作機制的細節。

RESTful和SOAP

RESTFUL(英文:Representational State Transfer,簡稱REST)是一種網絡應用程式的設計風格和開發方式,基于HTTP,可以使用XML格式定義或JSON格式定義。RESTFUL适用于移動網際網路廠商作為業務接口的場景,實作第三方OTT調用移動網絡資源的功能,動作類型為新增、變更、删除所調用資源。
SOAP是簡單對象通路協定,是交換資料的一種協定規範,是一種輕量的、簡單的、基于XML(标準通用标記語言下的一個子集)的協定,它被設計成在WEB上交換結構化的和固化的資訊。

相關名詞解釋

  • REST:即Representational State Transfer的縮寫,翻譯過來為“表現層狀态轉化”
  • 資源(Resources):所謂"資源",就是網絡上的一個實體,或者說是網絡上的一個具體資訊,也就是url中位址所指的資源
  • 表現層(Representation):将資源呈現出來的形式
  • 狀态轉化(State Transfer):如果用戶端想要操作伺服器,必須通過某種手段,讓伺服器端發生"狀态轉化"(State Transfer)。而這種轉化是建立在表現層之上的,是以就是"表現層狀态轉化"

六大原則

  • 用戶端-服務端(Client-Server): 這個更專注用戶端和服務端的分離,服務端獨立可更好服務于前端、安卓、IOS等用戶端裝置。
  • 無狀态(Stateless):服務端不儲存用戶端狀态,用戶端儲存狀态資訊每次請求攜帶狀态資訊。
  • 可緩存性(Cacheability) :服務端需回複是否可以緩存以讓用戶端甄别是否緩存提高效率。

優點

  • URL具有很強可讀性的,具有自描述性;
  • 資源描述與視圖的松耦合;
  • 可提供OpenAPI,便于第三方系統內建,提高互操作性;
  • 如果提供無狀态的服務接口,可提高應用的水準擴充性;

示例

最後再看一下示例你就明白采用REST風格之後的優雅之處
           
  • 傳統URL請求格式
    • http://.../?method=fwdFlowPage&id=1&num=10.0
  • 采用RESTful風格後
    • http://.../fwdFlowPage/1/10.0
上一篇: 7-22

繼續閱讀