1.1、简介
大家如果接触过http协议,那么肯定听过一个名词“RESTful ”。RESTful 是目前最流行的 API 架构风格,用于 Web 数据接口的设计。那什么是RESTful 呢? RESTful 的核心思想: 请求方式 + URL的方式对资源发起命令。 比如:GET /user 这个命令中,GET 查询动作,user是被查询的对象。 比如:POST /user 这个命令中,POST新增动作,user是被新增的对象。
1.2、常用请求方式
GET:查询(Read)
POST:新增(Create)
PUT:更新(Update)
PATCH:部分更新(Update)
DELETE:删除(Delete)
采用这种约定之后,每个动作对应不同的请求方式,但是URL不会发生变化。对于接口的维护和测试都是非常方便的。
1.3、RESTful和其他接口设计的区别
传统接口设计方式:
GET/POST /getAllUsers 查询所有的用户
GET/POST /getUserById?id=1 查询id=1用户
POST /createUser 创建用户
GET/POST /deleteByUserId?id=1 删除id=1用户
RESTful
GET /user 查询所有的用户
GET /user/1 查询id=1用户
GET /user?id=1 查询id=1用户
POST /user 创建用户
DELETE /user/1 删除id=1用户
DELETE /user?id=1 删除id=1用户
通过上面对比你会发现,RESTful类型的接口更加简单轻量,需要记忆的东西也变少了,这就是RESTful魅力所在。
1.4、状态码
http状态码是一个三位数,范围100-599,以第一位数分类。
1XX 接受的请求正在处理
2XX 请求正常处理完毕 200
3XX 重定向(302)相关和缓存(304)
4XX 客户端错误,服务端无法处理请求 404
5XX 服务器请求处理失败 500
在RESTful接口设计中1XX和3XX基本用不到,4XX和5XX还是和普通接口一样,出现了什么错误做出对应提示即可。只有2XX会有一些改变,传统接口成功之后我们都会统一返回200不做区分,而RESTful对于不同的请求方式会返回不同的状态码。如下:
GET: 200 OK
POST: 201 Created
PUT: 200 OK
PATCH: 200 OK
DELETE: 204 No Content
1.5、响应报文类型
RESTful接口返回的响应报文一般是JSON或者XML,由Content-Type这个实体头字段指定,不应该返回纯文本。JSON也是目前最常用的一种传输格式。