1. 程式人生 > 實用技巧 >drf—— RESTful API規範

drf—— RESTful API規範

一、RESTful API規範

1 英文名:Representational State Transfer,中文全稱:表徵性狀態轉移
2 Web API介面的設計風格,尤其適用於前後端分離的應用模式中
3 與語言,平臺無關,任何框架都可以寫出符合restful規範的api介面
4 規範:10條
    -1  資料的安全保障:url連結一般都採用https協議進行傳輸
    -2  介面特徵表現:api關鍵字標識
        -https://api.baidu.com/books/
        -https://www.baidu.com/api/books/
    -3 多版本共存:url連結中標識介面版本
        
-https://api.baidu.com/v1/books/ -https://api.baidu.com/v2/books/ -4 資料即是資源,均使用名詞(可複數)*********** -介面一般都是完成前後臺數據的互動,互動的資料我們稱之為資源 -一般提倡用資源的複數形式,不要使用動詞 -查詢所有圖書 -https://api.baidu.com/books/ -https://api.baidu.com/get_all_books/ # 錯誤示範,不可用 -https://api.baidu.com/delete-user #
錯誤的示範,不可用 -https://api.baidu.com/user # 刪除使用者的示例,到底是刪還是查?由第5條規範決定 -5 資源操作由請求方式決定:*********** https://api.baidu.com/books - get請求:獲取所有書 https://api.baidu.com/books/1 - get請求:獲取主鍵為1的書 https://api.baidu.com/books - post請求:新增一本書書 https:
//api.baidu.com/books/1 - put請求:整體修改主鍵為1的書 https://api.baidu.com/books/1 - patch請求:區域性修改主鍵為1的書 https://api.baidu.com/books/1 - delete請求:刪除主鍵為1的書 -6 過濾,通過在url上傳參的形式傳遞搜尋條件 https://api.example.com/v1/zoos?limit=10 :指定返回記錄的數量 https://api.example.com/v1/zoos?offset=10&limit=3:指定返回記錄的開始位置 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:指定篩選條件 -7 響應狀態碼 -返回資料中帶狀態碼 -{'code':100} -8 返回結果中帶錯誤資訊 -{'code':100,'msg':'因為xx原因失敗'} -9 返回結果,該符合以下規範 GET /collection:返回資源物件的列表(陣列) GET /collection/resource:返回單個資源物件(字典) POST /collection:返回新生成的資源物件 (新增後的物件字典) PUT /collection/resource:返回完整的資源物件 (修改後的物件字典) PATCH /collection/resource:返回完整的資源物件 (修改後的物件字典) DELETE /collection/resource:返回一個空文件 () -10 返回的資料中帶連結地址 -查詢id為1的圖書介面,返回結果示例(虛擬碼) {'code':100, 'msg':'成功', 'result': {'title':'西遊記', 'price':12.3, 'publish':'https://127.0.0.1/api/v1/publish/3' } }