URL命名原則
- URL請求采用小寫字母涌穆,數(shù)字侨颈,部分特殊符號(非制表符)組成。
- URL請求中不采用大小寫混合的駝峰命名方式构眯,盡量采用全小寫單詞愕难,如果需要連接多個單詞,則采用連接符“_”連接單詞
-
query parameter
可以采用駝峰命名法,也可以采用下劃線命名的方式猫缭,推薦采用下劃線命名的方式葱弟,據(jù)說后者比前者的識別度要高,其中猜丹,做前端開發(fā)基本都后者翘悉,而做服務(wù)器接口開發(fā)基本用前者
概念
常用 HTTP Methods
- GET:獲取資源
- POST:創(chuàng)建資源
- PUT:更新資源全部屬性
- PATCH: 用于資源的部分屬性
冪等性
同一個RESTful
接口的多次訪問,得到的資源狀態(tài)是相同的居触。
安全性
對該RESTful接口訪問妖混,不會使服務(wù)端資源的狀態(tài)發(fā)生改變。
CRUD請求定義規(guī)范(用戶和組織機構(gòu)為例)
GET:(GET 用于獲取和查詢)
獲取單個資源時轮洋,路由結(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ù)只能通過請求 Body 方式傳參;
HTTP方法 | URI | 描述 | 冪等 | 安全 |
---|---|---|---|---|
POST | /users | 創(chuàng)建用戶 | 否 | 否 |
POST | /orgs | 創(chuàng)建組織 | 否 | 否 |
PUT: (PUT 用于修改/更新資源)
路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}, 只能通過 Body 方式傳參
HTTP方法 | URI | 描述 | 冪等 | 安全 |
---|---|---|---|---|
POST | /users/{id} | 更新用戶 | 是 | 否 |
POST | /orgs/{id} | 更新組織 | 是 | 否 |
PATCH: (PATCH 用于修改/更新資源部分屬性)
路由結(jié)構(gòu)為 /資源復(fù)數(shù)/{資源ID}, 只能通過 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ù)雜查詢請求
HTTP方法 | URI | 描述 | 冪等 | 安全 |
---|---|---|---|---|
GET | /users?locked=1 | 過濾被鎖用戶 | 是 | 是 |
GET | /users?sort=priority | 按權(quán)重排序 | 是 | 是 |
GET | /users?locked=1&sort=priority | 按權(quán)重排序 | 是 | 是 |
特定請求
資源的特定請求
采用在資源下面定義特定的請求pattern弊予,見如下示例
HTTP方法 | URI | 描述 | 冪等 | 安全 |
---|---|---|---|---|
GET | /users/today_login | 獲取今天登入用戶 | 是 | 是 |
GET | /users/today_login?sort=loginTime | 獲取今天登入用戶按登入時間排序 | 是 | 是 |
GET | /users/action/export | 導出所有用戶 | 是 | 是 |
PUT | /users/action/audit | 用戶審核 | 是 | 是 |
PATCH | /users/{id}/password | 用戶修改密碼 | 是 | 是 |
動作:/模塊/資源/action/{action}
非特定資源類
請求URL采用如下形式: /login /logout