转载 RESTful

193 阅读2分钟

 

转载自:柠檬班罗杰老师

1、简介


大家如果接触过http协议,那么肯定听过一个名词“RESTful”。

RESTful是目前最流行的API架构风格,用于Web数据接口的设计。

那什么是RESTful呢?

RESTful的核心思想:请求方式+URL的方式对资源发起命令。

  • 比如:GET /user这个命令中,GET 查询动作,user是被查询的对象。

  • 比如:POST /user这个命令中,POST新增动作,user是被新增的对象。

2、常用请求方式

GET: 查询(Read)
POST: 新增(Add)
PUT: 更新(Update)(全部字段)
Patch: 更新(部分字段)
Delete: 删除(Delete)

采用这种约定之后,每个动作对应不同的请求方式,但是URL不会发生变化。对于接口的维护和测试都是非常方便的。

3、RESTful和其他接口设计区别

传统接口设计方式:

GET/POST /getAllUser          查询所有的用户
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魅力所在。

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

5、响应报文类型

RESTful接口返回的响应报文一般是JSON或者XML,由COntent-Type这个实体头字段指定,不应该返回纯文本。

JSON也是目前最常用的一种传输格式。