DjangoRestful

Restful的概念:

  • REST與技術無關,代表的是一種軟件架構風格(REST是Representational State Transfer的簡稱,中文翻譯爲“表徵狀態轉移”)
  • REST從資源的角度類審視整個網絡,它將分佈在網絡中某個節點的資源通過URL進行標識
  • 所有的數據,不過是通過網絡獲取的還是操作(增刪改查)的數據,都是資源,將一切數據視爲資源是REST區別與其他架構風格的最本質屬性
  • 對於REST這種面向資源的架構風格,有人提出一種全新的結構理念,即:面向資源架構(ROA:Resource Oriented Architecture)
  • RESTful不是一種技術,而是一種接口規範

主要規範包括:1.請求方式、2.狀態碼、3、url規範、4、傳參規範

請求方式method

  1. GET :從服務器取出資源(一項或多項)
  2. POST :在服務器新建一個資源
  3. PUT :在服務器更新資源(客戶端提供改變後的完整資源)
  4. PATCH :在服務器更新資源(客戶端提供改變的屬性)
  5. DELETE :從服務器刪除資源

狀態碼

'''1. 2XX請求成功'''
# 200 請求成功,一般用於GET與POST請求
# 201 Created - [POST/PUT/PATCH]:用戶新建或修改數據成功。
# 202 Accepted - [*]:表示一個請求已經進入後臺排隊(異步任務)
# 204 NO CONTENT - [DELETE]:用戶刪除數據成功。
'''2. 3XX重定向'''
# 301 NO CONTENT - 永久重定向
# 302 NO CONTENT - 臨時重定向
'''3. 4XX客戶端錯誤'''
# 400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發出的請求有錯誤。
# 401 Unauthorized - [*]:表示用戶沒有權限(令牌、用戶名、密碼錯誤)。
# 403 Forbidden - [*] 表示用戶得到授權(與401錯誤相對),但是訪問是被禁止的。
# 404 NOT FOUND - [*]:用戶發出的請求針對的是不存在的記錄。
# 406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是隻有XML格式)。
# 410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再得到的。
# 422 Unprocesable entity - [POST/PUT/PATCH] 當創建一個對象時,發生一個驗證錯誤。
'''4. 5XX服務端錯誤'''
# 500 INTERNAL SERVER ERROR - [*]:服務器內部錯誤,無法完成請求
# 501 Not Implemented     服務器不支持請求的功能,無法完成請求

面向資源編程: 路徑,視網絡上任何東西都是資源,均使用名詞表示(可複數)
所有請求實際操作的都是數據庫中的表,每一個表當做一個資源
資源是一個名稱,所以RESTful規範中URL只能有名稱或名詞的複數形式

https://api.example.com/v1/zoos
https://api.example.com/v1/animals
https://api.example.com/v1/employees

過濾,通過在url上傳參的形式傳遞搜索條件

https://api.example.com/v1/zoos?limit=10:指定返回記錄的數量
https://api.example.com/v1/zoos?offset=10:指定返回記錄的開始位置
https://api.example.com/v1/zoos?page=2&per_page=100:指定第幾頁,以及每頁的記錄數
https://api.example.com/v1/zoos?sortby=name&order=asc:指定返回結果按照哪個屬性排序,以及排序順序
https://api.example.com/v1/zoos?animal_type_id=1:指定篩選條件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章