設計 REST API的一些好文章

參考文章鏈接:
設計一套良好 REST API
理解OAuth 2.0
HTTP協議——->資源和URL
Web基礎之使用URL訪問資源
RESTful API 設計最佳實踐

1. 基於業務領域的數據建模,而非基於功能建模。
示例:
取得所有的dog:GET /api/dogs
取得一個特定的dog:GET /api/dogs/{id}
取得特定名字的dogs:GET /api/dogs/?name=xxx
創建一個dog:POST /api/dogs
更改一個dog:PUT /api/dogs/{id}
刪除一個dog:DELETE /api/dogs/{id}

8. Versioning 多版本

REST API的版本控制問題是一個非常有爭議的話題,網上的提議有很多,在這裏我們不是簡單的給定具體的方法,而是提供幾種可行的想法,具體的實施還需自己拿捏:
(1)不(顯式)支持多版本
(2)使用Http Accept Header

第一種,什麼都不做,不支持多版本的api。這個想法的背後依據是,根據調研發現,大多數的中小型規模的平臺服務,客戶規模都在一個可控的範圍,api的升級不會很頻繁,你只需通知你的客戶,在某個時間點api會更新,然後再server端做一些兼容性的數據遷移,比如增加或刪除某個數據庫中的表的某個列的名字。大多數情況下,支持多版本api費力不討好,測試和部署的成本很大,收益卻很小。你要做就是保持唯一個可用api服務的兼容性,而不是提供多個版本的api讓用戶使用。

第二種,如果你一定要支持versioning,那麼就在http的accept header中添加version信息,不要在url中使用version信息,千萬不要用/api/v1/xxx。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章