拓展:白話講解RESTful架構
最近看一些招聘資訊,也是看到了很多要求RESTful架構的,然後就單獨拿出一些時間來了解一下,然後按照自己的理解白話整理一下。
1. 什麼是REST
說白了就是一個api的設計規範,不屬於什麼技術類的東西。符合REST約束的,就叫RESTful
2.怎麼約束的
五個點:
資源與URI
統一資源介面
資源的表述
資源的連結
狀態的轉移
第一個點:資源與URL
主要就是url的幾個規範:
使用_或-來讓URI可讀性更好:單詞分割的時候多個單詞之間用_或者-進行分割。
使用/來表示資源的層級關係:這個沒什麼過多解釋的
使用?用來過濾資源:?後面表示的是url附帶的資訊,key=>val的形式
,或;可以用來表示同級資源的關係:這個沒怎麼看明白,大概的意思是;和,用來分割同意目錄下的兩個檔案。
第二點:統一資源介面
請求的時候用到的請求方式是統一的,例如:POST,GET,PUT,DELETE,等等
第三點:資源的表述
大概意思就是如果是資源請求,那麼需要確定請求的資源是什麼型別,是json還是xml還是圖片之類。
第四點:資源的連結
這部分的重點是"超媒體即應用狀態引擎(hypermedia as the engine of application state)",加一個link頭,告訴客戶端怎麼訪問下一頁和最後一頁,其實就是兩個連結。
第五點:狀態的轉移:
服務端不儲存客戶端狀態。
總結
什麼是REST:結束語
REST 描述了一個架構樣式的互聯絡統(如 Web 應用程式)。REST 約束條件作為一個整體應用時,將生成一個簡單、可擴充套件、有效、安全、可靠的架構。由於它簡便、輕量級以及通過 HTTP 直接傳輸資料的特性,RESTful Web 服務成為基於 SOAP 服務的一個最有前途的替代方案。用於 web 服務和動態 Web 應用程式的多層架構可以實現可重用性、簡單性、可擴充套件性和元件可響應性的清晰分離。開發人員可以輕鬆使用 Ajax 和 RESTful Web 服務一起建立豐富的介面。
RESTful的關鍵
RESTful的關鍵是定義可表示流程元素/資源的物件。在REST中,每一個物件都是通過URL來表示的,物件使用者負責將狀態資訊打包進每一條訊息內,以便物件的處理總是無狀態的。
RESTful的第二大問題是組合管理及流程繫結。企業對正規的(基於SOAP)SOA最大的反對聲之一便是,這種等級的發現和繫結靈活性不足以適應複雜性。