目前对于大多数项目来讲, 先后端分离,接口调用, 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 返回车身颜色为红色的全部车辆
未完待续