URI規(guī)則
- 資源名為復數形式。
eg./orders :訂單集合。
eg./users :用戶集合。
eg./users/123 :用戶123。 - 全小寫英文單詞。
eg./orders/123/pay :為編號為123的訂單付款。 - 用URL路徑標識資源層級,但是層級不要過多。
eg./users/123/orders :用戶123的所有訂單集合。
eg./users/123/orders/123:應為/orders/123。 - 用-分割多單詞的路徑名。
eg./app-setting :app的設置。
eg./activity-orders :活動訂單。 - 用_分割多單詞的‘?’查詢部分參數名。
eg./activities?activity_type=1 :活動類型為1的活動集合。
‘/’路徑部分
僅一下3部分內容會出現(xiàn)在路徑中:
- 資源名。
eg./orders:訂單集合 - 資源主鍵的值。
eg./orders/123':編號為123的訂單。 - 資源的操作行為(僅限get、post、put、delete無法涵蓋的操作行為)。
eg./orders/123/cancel:取消編號為123的訂單。
eg./activities/123/onsale:上架編號為123的活動。
‘?’查詢參數部分
以下兩部分內容會出現(xiàn)在查詢部分。
- 資源的非主鍵屬性作為查詢條件時。
eg./orders?status=paid:付款成功的訂單集合。 - 排序、分頁的參數(通用部分,參數名以及格式作統(tǒng)一處理)。
2.1 分頁參數:page表示第幾頁,最小值是1,默認值是1;page_size表示分頁大小,默認值是10。
eg./orders?page=2&page_size=12:取第二頁,每頁12條數據。
2.2 排序參數:order_by包含排序字段和排序方式兩部分,用“,”分割;可同時指定多個排序字段,用“;”分割。
eg.order_by=create_time,asc;like_count,desc:先按照創(chuàng)建時間升序排列,再按照收藏數量降序排序。
Asp.Net Web Api路由實施規(guī)范
路由實施規(guī)范的命名規(guī)則受以上的URL規(guī)則所約束。
- RoutePrefix:所有公開的ApiController必須添加RoutePrefix(“”)特性。
2.Route:所有公開的Action必須添加Route(“”)。
3.所有公開的Action必須至少添加一個特性(HttpGet、HttpPost、HttpPut、HttpDelete)。
HTTP Status Code
對資源的操作的成功或者失敗,盡量的使用通用的狀態(tài)碼表示。
| Status Code | HTTP Method | |
|---|---|---|
| 200 OK | GET,POST,PUT | 獲取數據成功 |
| 201 Created | POST | 創(chuàng)建資源成功 |
| 204 Not Content | DELETE | 沒有返回結果 |
| 400 Bad Request | * | 客戶端錯誤的請求,同時攜帶錯誤響應消息 |
| 401 Unauthorized | * | 未授權 |
| 403 Forbidden | * | 禁止訪問 |
| 404 Not Found | * | 未找到 |
| 500 Internal Server Error | * | 內部服務器錯誤 |
HTTP Header
| Header | 用途 | 示例值 |
|---|---|---|
| Authorization | 權限驗證 | token xxx |
| Accept | 請求方期望接受的數據格式 | application/json |
| Content-Type | HTTP消息實體的數據格式 | application/json |