咱們在瀏覽器中能看到的每一個網站,都是一個web服務。那麼咱們在提供每一個web服務的時候, 都須要先後端交互,先後端交互就必定有一些實現方案,咱們一般叫web服務交互方案。 目前主流的三種web服務交互方案: -- REST ( Representational State Transfer)表述性狀態轉移 -- SOAP (Simple Object Access Protocol) 簡單的對象訪問協議 -- XML-RPC (XML Remote Procedure Call)基於XML的遠程過程調用 XML-RPC是經過XML將調用函數封裝,並使用HTTP協議做爲傳送機制。 後來在新的功能不斷被引入下,這個標準慢慢演變成爲今日的SOAP協定。 SOAP服務則是以自己所定義的操做集,來訪問網絡上的資源。 SOAP也是基於XML的,可是它不僅限於HTTP協議的傳輸,包括TCP協議,UDP協議均可以傳輸。 REST是Roy Thomas Fielding博士於2000年在他的博士論文裏提出來的。 REST相比SOAP更加簡潔,性能和開發效率也有突出的優點。 咱們今天主要說一下這個REST,如今愈來愈多的web服務開始採用REST風格設計和實現。 例如,amazon.com提供接近REST風格的Web服務進行圖書查找;雅虎提供的Web服務也是REST風格的。 咱們接下來要學的框架也是遵循REST風格的,那麼咱們來看下它究竟是個什麼樣的風格, 瞭解了它是什麼後,咱們看下它的優勢是什麼,咱們爲何用它。
資源 網頁中能看到的都是資源 URL 統一資源定位符 URI 統一資源標識符 統一資源接口 對資源的操做根據HTTP請求方式的不一樣來進行不一樣的操做 遵循HTTP請求方式的語義 先後端傳輸的是資源的表述 展示的是資源的轉態
面向資源去編程 url中儘可能名詞不要動詞 根據HTTP請求方式的不一樣對資源進行不一樣的
體現版本 https://v3.bootcss.com/ https://.bootcss.com/v3 體現是不是API https://v3.bootcss.com/api 有過濾條件 https://v3.bootcss.com/course?page=1 儘可能用https
攜帶狀態碼 1** 信息,服務器收到請求,須要請求者繼續執行操做 2** 成功,操做被成功接收並處理 3** 重定向,須要進一步的操做以完成請求 4** 客戶端錯誤,請求包含語法錯誤或沒法完成請求 5** 服務器錯誤,服務器在處理請求的過程當中發生了錯誤 返回值 get 返回查看的全部或者單條數據 post 返回新增的這條數據 put/patch 返回更新的這條數據 delete 返回值空 攜帶錯誤信息 攜帶超連接 在不分離的項目用的多 ret = { code: 1000, data:{ id:1, name:'小強', depart_id:http://www.luffycity.com/api/v1/depart/8/ } }