如何更好地設計RESTful API?

如何更好地設計RESTful API?

目前對於大多數項目來講, 先後端分離,接口調用, 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 headers

服務端和客服端都應該指定HTTP header, 像Content-Type, Accepttable


六,爲客服端提供過濾,排序,分頁

6.1 過濾(搜索🔍)

當咱們須要過濾(搜索)的時候應該放在URL參數上, 而不是放在POST方法的data內容裏面class

GET /cars?color=red 返回車身顏色爲紅色的全部車輛

6.2 排序

6.3 分頁

未完待續

相關文章
相關標籤/搜索