RESTful API概念解析

2022-07-30 06:54:17 字數 3028 閱讀 8988

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)。

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 - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。

狀態碼是4xx時,應返回錯誤資訊,error當做key。    

針對不同操作,伺服器向使用者返回的結果應該符合以下規範

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是相對於作業系統而言的,不同的作業系統對應於不...