经常做接口测试,会看很多接口文档,那怎么识别研发的接口设计是否足够规范,是否符合一些行业标准或准则。那认识了解RESTfull,可以让我们更具有专业性。让我们对接口文档的阅、接口合理性设计识别,做到有的放矢。
REST是什么
REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。
REST本身并没有创造新的技术、组件或服务
REST指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。
理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过HTTP实现的REST。
RESTfull主要做什么
结合REST的原则,RESTfull从下面几个方面做了约束和原则。
资源与URI
统一资源接口
资源的表述
资源的链接
状态的转移
1. 资源与URI
所有的资源都有一个资源标志符
http://example.com/users/
http://example.com/class/
http://example.com/teacher/
2. 统一资源接口
幂等性:对同一REST接口的多次访问,得到的资源状态是相同的。
安全性:对该REST接口访问,不会使服务器端资源的状态发生改变。
1.传统URL请求格式:
http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息
2.RESTful请求格式:
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user DELETE 删除用户信息
3. 资源的表述
服务端可以通过Content-Type告诉客户端资源的表述形式。
资源的表述形式有:文本资源可以采用html、xml、json等格式,图片可以使用PNG或JPG展现出来
4. 资源的链接
很多人在设计RESTful架构时,使用很多时间来寻找漂亮的URI,而忽略了超媒体。所以,应该多花一些时间来给资源的表述提供链接,而不是专注于"资源的CRUD"。
比如下一页的链接地址、资源的链接地址都应该符合RESTful的设计思路。
5. 状态的转移
原则上要求无状态通信原则。
这里说的无状态通信原则,并不是说客户端应用不能有状态,而是指服务端不应该保存客户端状态。