符合RESTful的接口規(guī)范

  1. 把a(bǔ)pi放在專屬域名下,要帶版本號

  2. api的url中應(yīng)該只有名詞,和數(shù)據(jù)庫的表或文檔資源相對應(yīng);對資源(collection)的具體操作類型則由http方法動(dòng)詞表示

(安全性:不改變資源狀態(tài),類似只讀;冪等性:執(zhí)行一次或多次,對資源狀態(tài)的改變等價(jià))

取出 - 安全、冪等
GET /collection:返回資源對象的列表(數(shù)組)
GET /collection/resource:返回單個(gè)資源對象

新建 - 不安全、不冪等
POST /collection:返回新生成的資源對象

更新 - 不安全、冪等
PUT /collection/resource:返回完整的資源對象

刪除 - 不安全、冪等
DELETE /collection/resource:返回一個(gè)空文檔

  1. 返回的記錄數(shù)量很多時(shí),不應(yīng)一次提供給用戶,api應(yīng)提供參數(shù)以過濾返回結(jié)果

  2. 狀態(tài)碼
    200 OK - 服務(wù)器成功返回用戶請求的數(shù)據(jù),該操作是冪等的(Idempotent)
    201 CREATED - 用戶新建或修改數(shù)據(jù)成功
    202 Accepted - 表示一個(gè)請求已經(jīng)進(jìn)入后臺排隊(duì)(異步任務(wù))
    204 NO CONTENT - 用戶刪除數(shù)據(jù)成功
    400 INVALID REQUEST - 用戶發(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 - 用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)
    410 Gone -用戶請求的資源被永久刪除,且不會再得到的
    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ā)出的請求是否成功

  3. 盡量用json,不用xml
    因?yàn)镴SON的結(jié)構(gòu)更容易映射至一般語言的數(shù)據(jù)結(jié)構(gòu)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容