標籤:
源地址:http://fann.im/blog/2013/07/15/best-practices-for-restful-api/
做服務端開發,免不了有對外介面,正好看到 Best Practices for Designing a Pragmatic RESTful API,簡單摘抄做個筆記。
- API 就是面對開發人員的 UI,所以要對開發人員友好,能方便在瀏覽器輸入訪問。
- 盡量遵守 Web 標準。
- 使用 RESTful URLs。URL 標識資源,HTTP Method(GET/POST/PUT/DELETE) 操作控制資源,其中 GET 擷取,POST 建立,PUT 更新,DELETE 刪除,還有一個 PATCH 部分更新。
- URL 用複數形式標識資源。
- URL 資源作為一個原子操作。
- 文檔,並且配上相應樣本,最好提供可直接瀏覽器+curl 的例子。
- API 一旦確定就不輕易修改,更新和刪除要有對應文檔說明。
- API 要有版本,並且直接在 URL 中表現出來,比如
/api/1/xyz.
- URL 可以跟上條件過濾控制參數,比如
/tickets?state=open。
- 把常用的條件集合封裝成一個 URL 資源,比如
/tickets/recently_closed。
- URL 可包含一個返回欄位列表,只返回指定欄位內容,比如
/tickets?fields=id,subject
- 只有 JSON 格式,然後也就沒有必要在 URL 指明 format 尾碼。
- URL 採用蛇形命名(底線形式),比如
user_timeline.
- API 返回要設定 Content-Type,結果用 Gzip 壓縮。
- RESTful GET 只能讀取,不允許修改資料。
- API 請求有次數限制,類似 Twitter Rate Limiting
- 如有需要,用 OAuth 2 認證。
- API 頭部資訊包含 ETag 等緩衝資訊。
- 有用的錯誤資訊:唯一錯誤碼+錯誤描述資訊,有對應文檔。
- 充分利用 HTTP status code,比如 200/201/204/304/401/403/404/405.
iOS 8:【轉】RESTful編程最佳實務