目前對於大多數項目來講, 先後端分離,接口調用, RESTful API使用愈來愈流行。可是如何設計更好,更容易讓人理解的API仍是須要下一番功夫的。後端
下面我將介紹若是更好地設計RESTful API。前後端分離
爲了方便理解, 咱們應該爲全部的API列表使用名詞。 例如設計
訂單 | GET | POST | PUT | DELETE |
---|---|---|---|---|
/cars | 獲取全部的汽車列表 | 新建一輛汽車 | 批量修改 | 刪除全部 |
/cars/112 | 獲取特定的汽車 | NOT ALLOWED(405) | 修改特定的汽車 | 刪除特定的汽車 |
不用使用以下:code
/getAllCars /createNewCar /deleteAllRedCars
GET
方法不該該修改任何的狀態若是須要修改相關數據項的狀態, 用 PUT
, POST
或者DELETE
而非GET
排序
例如: 不要使用接口
GET /users/113?activate or GET /users/113/activate
不要把單數和複數名字搞混淆了, 通常來說, 全部的資源都使用複數, 例如:資源
/cars 而非 /car /users 而非 /user /products 而非 /product /settings 而非 /setting
若是兩個方法中間有必然的關係, 這個時候應該使用子資源的方式, 例如:get
GET /cars/711/drivers/ 找到全部開711這個車的司機 GET /cars/711/drivers/4 找到車711,id爲4的司機
服務端和客服端都應該指定HTTP header, 像Content-Type
, Accept
table
當咱們須要過濾(搜索)的時候應該放在URL
參數上, 而不是放在POST
方法的data
內容裏面class
GET /cars?color=red 返回車身顏色爲紅色的全部車輛
未完待續