rest與技術無關,代表的是一種軟體架構風格,rest是representational state transfer的簡稱,中文翻譯為「表徵狀態轉移」或「表現層狀態轉化」。
api與使用者的通訊協議
總是使用https協議。
盡量將api部署在專用網域名稱
api很簡單
1. 將版本資訊放在url中,如:/v1/
2. 將版本資訊放在請求頭中。
視網路上任何東西都是資源,均使用名詞表示(可複數)
/v1/zoos
/v1/animals
/v1/employees
get :從伺服器取出資源(一項或多項)
post :在伺服器新建乙個資源
put :在伺服器更新資源(客戶端提供改變後的完整資源)
patch :在伺服器更新資源(客戶端提供改變的屬性)
delete :從伺服器刪除資源
通過在url上傳參的形式傳遞搜尋條件
/v1/zoos?limit=10:指定返回記錄的數量
/v1/zoos?offset=10:指定返回記錄的開始位置
/v1/zoos?page=2&per_page=100:指定第幾頁,以及每頁的記錄數
/v1/zoos?sortby=name&order=asc:指定返回結果按照哪個屬性排序,以及排序順序
/v1/zoos?animal_type_id=1:指定篩選條件
200 ok - [get]:伺服器成功返回使用者請求的資料,該操作是冪等的(idempotent)。狀態碼是4xx時,應返回錯誤資訊,error當做key。 針對不同操作,伺服器向使用者返回的結果應該符合以下規範201 created - [post/put/patch]:使用者新建或修改資料成功。
202 accepted - [*]:表示乙個請求已經進入後台排隊(非同步任務)
204 no content - [delete]:使用者刪除資料成功。
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] 當建立乙個物件時,發生乙個驗證錯誤。
500 internal server error - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。
get /collection:返回資源物件的列表(陣列)get /collection/resource:返回單個資源物件
post /collection:返回新生成的資源物件
put /collection/resource:返回完整的資源物件
patch /collection/resource:返回完整的資源物件
delete /collection/resource:返回乙個空文件
"""請求到來之後,都要執行dispatch方法,dispatch方法根據請求方式不同觸發 get/post/put等方法
注意:apiview中的dispatch方法有好多好多的功能
"""return super().dispatch(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
return response('get請求,響應內容')
def post(self, request, *args, **kwargs):
return response('post請求,響應內容')
def put(self, request, *args, **kwargs):
return response('put請求,響應內容')
了解RestfulAPI的基本概念
今日推薦 為什麼一到面試就懵逼!本質 一種軟體架構風格 核心 物件導向 解決問題 降低開發複雜性 提高系統可伸縮性 http是乙個屬於應用層的協議,特點是簡捷和快速。http請求協議組成格式 請求行訊息報頭 請求正文 請求行格式 舉例 get http 1.1 crlf 請求方法 組成格式 狀態行訊...
BSP 概念解析
發 布 時 間 2008 11 19 來 源 立宇泰論壇 作 者 duyunhai 瀏 覽 210 drew在這裡按照自己的理解來解釋一下bsp board support package 僅供參考 bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為...
BSP 概念解析
drew在這裡按照自己的理解來解釋一下bsp board support package 僅供參考 bsp是板級支援包,是介於主機板硬體和作業系統之間的一層,應該說是屬於作業系統的一部分,主要目的是為了支援作業系統,使之能夠更好的執行於硬體主機板。bsp是相對於作業系統而言的,不同的作業系統對應於不...