rest-framework基礎入門

一.相關概念的基本理解:html

  在學習這個框架以前先要搞清楚幾個概念:json

  REST是一種設計風格(網絡應用架構), 中文名稱是表現層(表徵)狀態轉轉化,其中表現層指的是資源的表現層,api

  資源呈現出來的形式稱做爲表現層(好比文本能夠是text格式表現,也能夠是html格式,json格式,XML格式).跨域

  URI只表明資源的位置,具體表現形式, 應該在HTTP請求的頭信息中用Accept和Content-Type字段指定.數組

  狀態轉化:互聯網通訊協議http協議協議是無狀態協議,意味着全部狀態都保存在服務器,若是客戶端要操做服務器,必須經過某種手段,讓服務器端發生狀態轉化,這種轉化緩存

是創建在表現層之上的,故稱作爲表現層狀態轉化。服務器

  在http協議裏,get,post,put,delete分別對應四種基本操做(獲取資源,新建資源,更新資源,刪除資源)網絡

二.Restful架構架構

  六個主要特色:app

  面向資源;(Rest架構設計以資源抽象核心展開)

   可尋址;(每一個資源在Web上都有本身的地址)

   連通性;(每一個資源非孤立的,能夠經過超連接將資源關聯起來)

   無狀態;(Rest架構的約束,同下)

   統一接口;

   超文本驅動;(資源之間經過超連接相互關聯,超連接既表明資源之間的關係,也表明可執行狀態的遷移),又叫「將超媒體做爲應用狀態的引擎。

三.Restful架構的優勢

  1.簡單性;

  對於開發,測試,運維人員來講都會很簡單,能夠充分利用Http服務端和客戶端庫,Web功能性測試工具,http緩存,http代理服務器,防火牆等。

   2.可伸縮性;

   充分利用好通訊鏈各個位置的緩存組件,能夠帶來更好的可伸縮性。

   3.弱耦合;

  容許服務器端和客戶端在很大範圍內,相對獨立地進化

四.Restful API 設計規範

  1.協議

      API與用戶通訊的協議,使用https協議。

  2.域名

   儘可能將API部署在專用域名之下(存在跨域的問題)

  3.版本

   應該將API的版本號放入URL

   4.路徑

   定位資源的url中要用名詞

  5.Http請求方法(method)

    get(從服務器取出資源,一項或多項)

   post(在服務器新建資源)

   put(在服務器更新資源(客戶端提供改變後的完整資源))

   patch(在服務器更新資源(客戶端提供改變的屬性))

     delete(從服務器端刪除資源)

     兩個不經常使用:

      head(獲取資源的元數據)

   options(獲取信息,關於資源的哪些屬性是客戶端能夠改變的)

  6.過濾信息

   在URL上傳參的方式傳遞搜索條件

  7.狀態碼

   服務器向用戶返回狀態碼和提示信息

  8.錯誤處理

   狀態碼是4xx時,返回錯誤信息,error看成key

  9.返回結果

   針對不一樣的操做,服務端向用戶端返回的結果應符合如下規範:

GET /collection:返回資源對象的列表(數組)
GET /collection/resource:返回單個資源對象
POST /collection:返回新生成的資源對象
PUT /collection/resource:返回完整的資源對象
PATCH /collection/resource:返回完整的資源對象
DELETE /collection/resource:返回一個空文檔

   10.Hypermedia API

   RESTful API最好作到Hypermedia,即返回結果中提供連接,連向其餘API方法,使得用戶不查文檔,也知道下一步應該作什麼。

{"link": {
  "rel":   "collection https://www.example.com/zoos",
  "href":  "https://api.example.com/zoos",
  "title": "List of zoos",
  "type":  "application/vnd.yourformat+json"
}}
相關文章
相關標籤/搜索