restful架构
restful的通俗理解
- restful就是一个大家都说普通话的约定。
- 两个人之间可能有交流共同的方式约定,公司内部可能有公司级别的交流沟通约定,世界上也是有世界级别的交流沟通约定。在技术范围也有不同群体间的约定。
- 有一个博士发了个论文说以前的接口方式都不容易被理解,不好,所以提出了一个名字叫restful的方案。
- 出于这个博士的影响力和这种方式确实好,所以武林中的各路英雄纷纷响应号召。
- 以浏览器代码范围错误代码约定这是啥么意思 比如200就是GET请求成功 201就是就是发布了一个内容成功了 等等(其实约定给的代码很少)
- 比较重要的是HTTP方法里不是有 GET POST PUT DELETE吗 相对应可以对应到 一条数据的 查增改删。那我们不如用浏览器方法吧,这样各种编程语言,各种平台上的人类看到这个就知道你要干啥了呀。当然除了这些方法还有其他很多,你又可以自定义。
- 以前接口方式错综复杂,就是想统一武林接口方式。
资源设计
- 设计资源的接口,接口uri选用的是名词,一般和数据库的表名相同,并且使用复数
动作设计
-
http动作
GET:从服务器中取出资源(一项或者多项)
POST:在服务器中新建一个资源
PUT:在服务器更新资源,PUT更新整个对象
PATCH: 在服务器更新资源,PATCH更新个别属性
DELETE:从服务器中删除资源
HEAD: 获取资源的元数据,比如一个资源的某个值.
OPTIONS: 获取客户端针对一个资源能够实施的操作.(返回这个 接口的所有方法.)
-
动作实例
GET: 查询所有
POST: 新建
PUT: 更新某个数据的信息(提供数据的全部信息)
PATCH: 更新某个数据的信息(提供数据的部分信息)
DELETE:删除
返回结果
-
常见状态码
200 [GET]: 服务器成功返回用户请求的数据
201 [POST/PUT/PATCH]:用户新建或修改数据成功
204 [DELETE]:用户删除数据成功
401 [*]:没有权限
403 [*] 用户得到授权, 但是禁止访问
404 [*] 用户发出的请求针对的是不存在的记录
500 [*] 服务器内部错误
-
Content Type
Accept 只会出现在request请求头中. 表示响应返回数据可以接受的数据类型
Content Type 可以出现在request请求头中 也可以出现在Response响应头中. 代表通信中携带参数的数据类型