Django REST framework 簡介

  1. 在序列化與反序列化時,雖然操做的數據不盡相同,可是執行的過程倒是類似的,也就是說這部分代碼是能夠複用簡化編寫的。
  2. 在開發REST API的視圖中,雖然每一個視圖具體操做的數據不一樣,但增、刪、改、查的實現流程基本套路化,因此這部分代碼也是能夠複用簡化編寫的:
    • 增:校驗請求數據 -> 執行反序列化過程 -> 保存數據庫 -> 將保存的對象序列化並返回
    • 刪:判斷要刪除的數據是否存在 -> 執行數據庫刪除
    • 改:判斷要修改的數據是否存在 -> 校驗請求的數據 -> 執行反序列化過程 -> 保存數據庫 -> 將保存的對象序列化並返回
    • 查:查詢數據庫 -> 將數據序列化並返回

Django REST framework能夠幫助咱們簡化上述兩部分的代碼編寫,大大提升REST API的開發速度

Django REST framework 框架是一個用於構建Web API 的強大而又靈活的工具。一般簡稱爲DRF框架 或 REST framework。css

DRF框架是創建在Django框架基礎之上web

特色

  • 提供了定義序列化器Serializer的方法,能夠快速根據 Django ORM 或者其它庫自動序列化/反序列化;
  • 提供了豐富的類視圖、Mixin擴展類,簡化視圖的編寫;
  • 豐富的定製層級:函數視圖、類視圖、視圖集合到自動生成 API,知足各類須要;
  • 多種身份認證和權限認證方式的支持;
  • 內置了限流系統;
  • 直觀的 API web 界面;
  • 可擴展性,插件豐富

REST是一種標準,restful是一種規範,根據產品需求須要定出一份方便先後端的規範,所以不是全部的標準要求都須要遵循數據庫

restful規範:編程

首先restful是一種軟件架構風格或者說是一種設計風格,並非標準,它只是提供了一組設計原則和約束條件,主要用於客戶端和服務器交互類的軟件。     
就像設計模式同樣,並非必定要遵循這些原則,而是基於這個風格設計的軟件能夠更簡潔,更有層次,咱們能夠根據開發的實際狀況,作相應的改變。
它裏面提到了一些規範,例如:
1.restful 提倡面向資源編程,在url接口中儘可能要使用名詞,不要使用動詞             
二、在url接口中推薦使用Https協議,讓網絡接口更加安全
https://www.bootcss.com/v1/mycss?page=3
(Https是Http的安全版,即HTTP下加入SSL層,HTTPS的安全基礎是SSL,
所以加密的詳細內容就須要SSL(安全套接層協議))                          
三、在url中能夠體現版本號
https://v1.bootcss.com/mycss
不一樣的版本能夠有不一樣的接口,使其更加簡潔,清晰             
四、url中能夠體現是不是API接口
https://www.bootcss.com/api/mycss            
五、url中能夠添加條件去篩選匹配
https://www.bootcss.com/v1/mycss?page=3             
六、能夠根據Http不一樣的method,進行不一樣的資源操做
(5種方法:GET / POST / PUT / DELETE / PATCH)             
七、響應式應該設置狀態碼
八、有返回值,並且格式爲統一的json格式             
九、返回錯誤信息
返回值攜帶錯誤信息             
十、返回結果中要提供幫助連接,即API最好作到Hypermedia
若是遇到須要跳轉的狀況 攜帶調轉接口的URLjson

  ret = {
code: 1000,
data:{
id:1,
name:'小強',
depart_id:http://www.luffycity.com/api/v1/depart/8/
}
}
View Code
相關文章
相關標籤/搜索