RESTful架構---理解

本文不求完全細緻,只求看到這些東西的時候還能想起來那麼一回事
本文內容部分摘自網絡,主要參考阮一峯老師的文章

  • REST原則
    • REST指的是一組架構約束條件和原則.這些原則是:
      • 爲所有事物定義ID 用URI來標識其作爲系統中唯一的一個存在.
      • 將所有事物鏈接在一起
        HATEOAS:超媒體被當做應用狀態引擎.
        其中一個方面是”超媒體”,換句話說就是”鏈接的思想”.(將本資源直接相關的資源的鏈接給出)
        另一個方面是”應用狀態”.客戶端可以通過給出的本資源直接相關的資源的鏈接將自身的狀態機改變.
      • 使用標準方法:
        爲了能夠使客戶端程序(多種,不一定就是瀏覽器)跟服務端的資源相互協作,資源應該正確地實現默認的應用協議(http),也就是使用標準的GET,PUT,POST,DELETE方法.
      • 資源多重表述:
        一種資源可以用json的格式來提供,也可以使用xml的格式來提供.但在實際小規模開發,不對外提供接口的開發中.直接規定爲json或者xml就可以了.
      • 無狀態通信
        雖然REST包含無狀態性,單並不代表暴露功能的應用就不能有狀態.
        REST要求狀態要麼被放入資源狀態中(在URI後邊綁縛session),要麼保存在客戶端上.
        最直接的好處就是可伸縮性.
        無狀態約束使服務器的變化對客戶端是不可見的.比如說其中一臺服務器宕機了,但是對於客戶端來說是不知道的.
  • 什麼是RESTful架構.如果一個架構符合REST原則,就稱它是RESTful架構
  • RESTful的名稱. Representational State Transfer.翻譯爲”表現層狀態轉化”.
  • 什麼是資源
    網絡上的一個實體,或者說網絡上的一個具體信息,都可以稱爲資源.比如說一段文本,一張圖片,一首歌,一個API服務.
    用URI來標識其作爲系統中唯一的一個存在.
  • 什麼是表現層
    我們把資源表現出來的形式,叫做”表現層”.其相對於資源來說,是資源在服務器上的一種存在形式.而不是客戶端瀏覽器或者其他什麼東西.
    URI只代表資源的實體,而不代表它的形式.嚴格地說,有些網址最後的”.html”後綴名是不必要的,因爲這個後綴名錶示格式,屬於”表現層”範疇,而URI應該只代表”資源”的位置。
    它的具體表現形式,應該在HTTP請求的頭信息中用Accept和Content-Type字段指定,這兩個字段纔是對”表現層”的描述。
    • 狀態轉化 如果客戶端想要操作服務器,必須通過某種手段,讓服務器端發生”狀態轉化”,而這種轉化是建立在表現層之上的,所以就是”表現層狀態轉化”.
    • 誤區
      • RESTful架構不應該包含動詞.
        資源表示的是一種實體,所以應該是名詞而不是動詞.動詞(也就是客戶端要對服務器進行的操作_應該放在HTTP協議中(放在url後邊的參數中).
      • RESTful架構不應該在URI中加入版本號
        因爲不同的版本,可以理解爲同一種資源的不同表現形式,所以應該用同一個URI,版本號可以再HTTP請求頭信息的Accept字段中進行區分.
發佈了61 篇原創文章 · 獲贊 87 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章