1.URI
rest接口一般是为围绕资源展开的,URI表示资源,资源一般对应服务器端的实体类
URI不用大写,用“-”,不用“_”,URI中的名词表示资源集合时,使用复数形式,名词对应数据库中的表,不能有动词
在URI中表达层级,用于按实体关联关系进行对象导航,一般根据id导航
过深的导航容易导致URI膨胀,不易维护
2.HTTP动词(Request方法)
GET(SELECT):从服务器取出资源,一项或多项
POST(CREATE):在服务器新建一个资源
PUT(UPDATE):在服务器更新资源,客户端提供改变后的完整资源
PATCH(UPDATE):在服务器更新资源,客户端提供改变的属性
DELETE(DELETE):从服务器删除资源
3.Response
GET:返回集合或者单个对象(people/1单个对象 people返回资源列表)
POST:返回新增成功的对象
PUT:返回新增成功的对象
PATCH:返回被修改的属性
DELETE:返回空
4.返回HTTP状态码
由于REST API是直接使用的HTTP协议,所以它的状态码也要尽量使用HTTP协议的状态码
状态码 | 描述 |
---|---|
200 OK | 服务器返回用户请求的数据,该操作是幂等的 |
201 CREATED | 新建或者修改数据成功 |
204 NOT CONTENT | 删除数据成功 |
400 BAD REQUEST | 用户发出的请求有问题,该操作是幂等的 |
401 Unauthoried | 表示用户没有认证,无法进行操作 |
403 Forbidden | 用户访问是被禁止的,无权限 |
404 not found | 资源不存在 |
422 Unprocesable Entity | 当创建一个对象时,发生一个验证错误 |
500 INTERNAL SERVER ERROR | 服务器内部错误,用户将无法判断发出的请求是否成功 |
503 Service Unavailable | 服务不可用状态,多半是因为服务器问题,例如CPU占用率大,等等 |
5.安全性和幂等性
安全性:不会改变资源状态,可以理解为只读的
幂等性:执行1次和执行N次,对资源状态改变的效果是等价的