RESTful AP

2022-08-05 18:24:16 字數 3603 閱讀 2495

rest與技術無關,代表的是一種軟體架構風格,rest是representational state transfer的簡稱,中文翻譯為“表徵狀態轉移”或“表現層狀態轉化”。

推薦閱讀 阮一峰 理解restful架構

推薦閱讀 阮一峰 restful設計指南

總是使用https協議。  

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:返回一個空文件

}
rest與技術無關,代表的是一種軟體架構風格,rest是representational state transfer的簡稱,中文翻譯為“表徵狀態轉移”或“表現層狀態轉化”。

推薦閱讀 阮一峰 理解restful架構

推薦閱讀 阮一峰 restful設計指南

總是使用https協議。  

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:返回一個空文件

}

尋找AP數

正整數n是無窮的,但其中有些數有神奇的性質,我們給它個名字 ap數。 對於一個數字i是ap數的充要條件是所有比它小的數的因數個數都沒有i的因數個數多。比如6的因數是1 2 3 6 共計有4個因數。它就是一個ap數 1 5的因數個數不是2就是3 。我們題目的任務就是找到一個最大的,且不超過n的ap數。...

ap143 led修改

以前的硬體版本只使用了一個eth口,新的板子增加了一個eth口,並且增加了響應的通訊時使用的燈。 led修改涉及到一下的內容 1 led 對...

RESTful

1 restful風格api 1 1 什麼是restful rest與技術無關,代表的是 一種軟體架構風格 rest是representational state transfer的簡稱,中文翻譯為 表徵狀態轉移 rest從資源的角度類審視整個網路,它將分佈在網路中某個節點的 資源通過url進行標識...