Restful風(fēng)格接口書寫規(guī)范

URL命名原則

  • URL請(qǐng)求采用小寫字母,數(shù)字,部分特殊符號(hào)(非制表符)組成。
  • URL請(qǐng)求中不采用大小寫混合的駝峰命名方式,盡量采用全小寫單詞,如果需要連接多個(gè)單詞,則采用連接符“_”連接單詞
  • query parameter可以采用駝峰命名法,也可以采用下劃線命名的方式,推薦采用下劃線命名的方式,據(jù)說(shuō)后者比前者的識(shí)別度要高,其中,做前端開(kāi)發(fā)基本都后者,而做服務(wù)器接口開(kāi)發(fā)基本用前者

概念

常用 HTTP Methods

  • GET:獲取資源
  • POST:創(chuàng)建資源
  • PUT:更新資源全部屬性
  • PATCH: 用于資源的部分屬性

冪等性

同一個(gè)RESTful接口的多次訪問(wèn),得到的資源狀態(tài)是相同的。

安全性

對(duì)該RESTful接口訪問(wèn),不會(huì)使服務(wù)端資源的狀態(tài)發(fā)生改變。

CRUD請(qǐng)求定義規(guī)范(用戶和組織機(jī)構(gòu)為例)

GET:(GET 用于獲取和查詢)

獲取單個(gè)資源時(shí),路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}; 資源為不可數(shù)名詞直接使用

HTTP方法 URI 描述 冪等 安全
GET /users 獲取用戶列表
GET /users/{id} 獲取指定用戶
GET /orgs 獲取組織列表
GET /orgs/{id} 獲取指定組織
GET /orgs/{id}/users/{id} 獲取指定組織下的用戶

POST:

只用于創(chuàng)建,路由結(jié)構(gòu)為 /資源復(fù)數(shù) ; 參數(shù)只能通過(guò)請(qǐng)求 Body 方式傳參;

HTTP方法 URI 描述 冪等 安全
POST /users 創(chuàng)建用戶
POST /orgs 創(chuàng)建組織

PUT: (PUT 用于修改/更新資源)

路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}, 只能通過(guò) Body 方式傳參

HTTP方法 URI 描述 冪等 安全
POST /users/{id} 更新用戶
POST /orgs/{id} 更新組織

PATCH: (PATCH 用于修改/更新資源部分屬性)

路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}, 只能通過(guò) Body 方式傳參

HTTP方法 URI 描述 冪等 安全
PATCH /users/{id} 更新用戶部分屬性
PATCH /orgs/{id} 更新組織部分屬性

DELETE:

刪除接口使用, 路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}

HTTP方法 URI 描述 冪等 安全
DELETE /users/{id} 刪除指定用戶
DELETE /orgs/{id} 更新制定組織

復(fù)雜查詢請(qǐng)求

HTTP方法 URI 描述 冪等 安全
GET /users?locked=1 過(guò)濾被鎖用戶
GET /users?sort=priority 按權(quán)重排序
GET /users?locked=1&sort=priority 按權(quán)重排序

特定請(qǐng)求

資源的特定請(qǐng)求

采用在資源下面定義特定的請(qǐng)求pattern,見(jiàn)如下示例

HTTP方法 URI 描述 冪等 安全
GET /users/today_login 獲取今天登入用戶
GET /users/today_login?sort=loginTime 獲取今天登入用戶按登入時(shí)間排序
GET /users/action/export 導(dǎo)出所有用戶
PUT /users/action/audit 用戶審核
PATCH /users/{id}/password 用戶修改密碼

動(dòng)作:/模塊/資源/action/{action}

非特定資源類

請(qǐng)求URL采用如下形式: /login /logout

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

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