如何更好地设计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 分页

未完待续

相关文章
相关标签/搜索