一、概述
REST是对API接口标准的一种规范
每一个URL代表一种资源
在客户端与服务器之间传递资源的表现层,如JPGE,XML,JSON等
客户端通过HTTP动词对服务器资源进行操作,实现状态的转换。
二、REST标准
六大原则
- C-S架构
- 无状态:采用的是http方式
- 统一的接口
- 一致的数据返回格式:要么XML,要么JSON,或者返回状态码。
- 可以缓存
- 系统分层
违反了任意一个原则,严格上都不能叫做RESTful风格。
三、HTTP动词
GET: 从服务器取出资源
POST:新建资源
PUT:更新资源(提供改编后的完整资源)
PATCH:更新资源(提供改编后的属性)
DELETE:删除资源
HEAD:获取资源元数据
OPTIONS:获取资源的哪些属性客户端可以改变
四、Restful实践准则
版本
在URL中加上版本号
https://example.com/api/v1/
参数命名规范
- 采用下划线命名的方式
https://example.com/api/users/today_login
url命名规范
- url不能有动词,只能由名次(而且只能是复数)
- 通过HTTP动词来使用相应的资源
https://example.com/api/users GET 查询所有用户
https://example.com/api/users/1 POST 添加新用户1
https://example.com/api/users/1 DELETE 删除用户1
https://example.com/api/users/1 PUT 更新用户全部信息
https://example.com/api/users/1 PATCH 更新用户部分信息
统一返回数据格式
- 这里统一返回Json
- code:HTTP状态码
- success/status:boolean类型,是否成功响应
- message:仅当status为fail/error时候,用于显示异常信息。如果状态码500-599 为fail,400-499为error,其他为success。
- data:响应body,状态值为fail/error可以返回null,错误原因或者异常名称。
http状态码
- 1xx:请求不成功
- 2xx:请求成功
- 3xx:重定向,需要进一步操作
- 4xx:客户端错误
- 5xx:服务端错误
请求参数
- 在进行分页和数据过滤请求的时候,采用HTTP query Parameter
多表多参数连接查询的URL设计
- 使用属性路由,在SpringMVC里面也就是PathVariable,提高API的可维护性
下面展示一些内联代码片
。
api/orders/{address}/{month}