狀態(tài)碼:
200 OK - [GET]:服務(wù)器成功返回用戶請求的數(shù)據(jù)奠衔,該操作是冪等的(Idempotent)济赎。
201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功。
202 Accepted - [*]:表示一個(gè)請求已經(jīng)進(jìn)入后臺排隊(duì)(異步任務(wù))
204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功约巷。
400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請求有錯(cuò)誤偎痛,服務(wù)器沒有進(jìn)行新建或修改數(shù)據(jù)的操作,該操作是冪等的独郎。
401 Unauthorized - [*]:表示用戶沒有權(quán)限(令牌踩麦、用戶名枚赡、密碼錯(cuò)誤)。
403 Forbidden - [*] 表示用戶得到授權(quán)(與401錯(cuò)誤相對)谓谦,但是訪問是被禁止的贫橙。
404 NOT FOUND - [*]:用戶發(fā)出的請求針對的是不存在的記錄,服務(wù)器沒有進(jìn)行操作反粥,該操作是冪等的卢肃。
406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)才顿。
410 Gone -[GET]:用戶請求的資源被永久刪除莫湘,且不會再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 當(dāng)創(chuàng)建一個(gè)對象時(shí)娜膘,發(fā)生一個(gè)驗(yàn)證錯(cuò)誤逊脯。
500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯(cuò)誤,用戶將無法判斷發(fā)出的請求是否成功竣贪。
動詞:
GET?/zoos:列出所有動物園
POST?/zoos:新建一個(gè)動物園
GET?/zoos/ID:獲取某個(gè)指定動物園的信息
PUT?/zoos/ID:更新某個(gè)指定動物園的信息(提供該動物園的全部信息)
PATCH?/zoos/ID:更新某個(gè)指定動物園的信息(提供該動物園的部分信息)
DELETE?/zoos/ID:刪除某個(gè)動物園
GET?/zoos/ID/animals:列出某個(gè)指定動物園的所有動物
DELETE?/zoos/ID/animals/ID:刪除某個(gè)指定動物園的指定動物
過濾信息:
如果記錄數(shù)量很多军洼,服務(wù)器不可能都將它們返回給用戶。API應(yīng)該提供參數(shù)演怎,過濾返回結(jié)果匕争。
下面是一些常見的參數(shù)。
?limit=10:指定返回記錄的數(shù)量
?offset=10:指定返回記錄的開始位置爷耀。
?page=2&per_page=100:指定第幾頁甘桑,以及每頁的記錄數(shù)。
?sortby=name&order=asc:指定返回結(jié)果按照哪個(gè)屬性排序歹叮,以及排序順序跑杭。
?animal_type_id=1:指定篩選條件