HTTP API設計指南

URI規(guī)則

  1. 資源名為復數形式。
    eg./orders :訂單集合。
    eg./users :用戶集合。
    eg./users/123 :用戶123。
  2. 全小寫英文單詞。
    eg./orders/123/pay :為編號為123的訂單付款。
  3. 用URL路徑標識資源層級,但是層級不要過多。
    eg./users/123/orders :用戶123的所有訂單集合。
    eg./users/123/orders/123 :應為/orders/123。
  4. 用-分割多單詞的路徑名。
    eg./app-setting :app的設置。
    eg./activity-orders :活動訂單。
  5. 用_分割多單詞的‘?’查詢部分參數名。
    eg./activities?activity_type=1 :活動類型為1的活動集合。

‘/’路徑部分

僅一下3部分內容會出現(xiàn)在路徑中:

  1. 資源名。
    eg./orders:訂單集合
  2. 資源主鍵的值。
    eg./orders/123':編號為123的訂單。
  3. 資源的操作行為(僅限get、post、put、delete無法涵蓋的操作行為)。
    eg./orders/123/cancel:取消編號為123的訂單。
    eg./activities/123/onsale:上架編號為123的活動。

‘?’查詢參數部分

以下兩部分內容會出現(xiàn)在查詢部分。

  1. 資源的非主鍵屬性作為查詢條件時。
    eg./orders?status=paid:付款成功的訂單集合。
  2. 排序、分頁的參數(通用部分,參數名以及格式作統(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ī)則所約束。

  1. 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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • HTTP API 設計指南 前言 這篇指南介紹描述了 HTTP+JSON API 的一種設計模式,最初摘錄整理自 ...
    Originalee閱讀 2,856評論 0 15
  • 翻譯自 HTTP API Design Guide https://github.com/interagent/h...
    零一間閱讀 406評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 最近兩位美容養(yǎng)生館的老板娘,都在免費體驗我們四季優(yōu)美的隨便果+四季代餐+蜂漿紙,而且不是體驗裝,是三盒、五盒,也許...
    四季龍閱讀 426評論 0 0
  • 郁金香別名:洋荷花、草麝香科別:百合科郁金屬 歐洲最早種植的郁金香。 郁金香花色艷麗多樣,常利用各種顏色配植成幾何...
    茶小汐閱讀 1,555評論 15 41

友情鏈接更多精彩內容