Restful API接口规范

REST(Representational State Transfer)表述性状态转换,REST指的是一组架构约束条件和原则。 如果一个架构符合REST的约束条件和原则,我们就称它为Restful架构。
一个简单的例子来看Restful和非Restful

非restful
新增用户:http://127.0.0.1:8088/adduser
修改用户:http://127.0.0.1:8088/putuser
删除用户:http://127.0.0.1:8088/deleteuser
查询用户:http://127.0.0.1:8088/getuser

restful
新增用户:POST http://127.0.0.1:8088/user
修改用户:PUT http://127.0.0.1:8088/user
删除用户:DELETE http://127.0.0.1:8088/user
查询用户:GET http://127.0.0.1:8088/user

可以看到对于非restful而言,它们是以不同的url来完成对应的请求,而对于restful而言,它们访问的url是一样的,但是HTTP方法动词不同,它们用HTTP STATUS/CODE定义操作结果。

restful的好处

URL具有很强可读性的,具有自描述性
规范化请求过程和返回结果
资源描述与视图的松耦合
可提供OpenAPI,便于第三方系统集成,提高互操作性
提供无状态的服务接口,降低复杂度,可提高应用的水平扩展性

规范整理

版本号

有三种方式放版本信息
1、在uri中放版本信息:GET /v1/users/1
2、Accept Header:Accept: application/json+v1
3、自定义 Header:X-Api-Version: 1
命名版本号可以解决版本不兼容问题,在设计 RESTful API 的一种实用的做法是使用版本号。上面所列的三种方式也是比较简单方便的一种

URL是名词

URI 不能包含动词,只能是名词(命名名词的时候,要使用小写、数字及下划线来区分多个单词)。

请求方式

GET:查询
POST:创建单个资源
PUT:更新单个资源(全量),客户端提供完整的更新后的资源
DELETE:删除

安全性 幂等性
GET
POST
PUT
DELETE

安全性:不会改变资源状态,可以理解为只读的;
幂等性:执行1次和执行N次,对资源状态改变的效果是等价的。

相应参数

json格式

状态码

200~299段 表示操作成功:

200 操作成功,正常返回

201 操作成功,已经正在处理该请求

300~399段 表示参数方面的异常

300 参数类型错误

301 参数格式错误

302 参数超出正常取值范围

303 token过期

304 token无效

400~499段 表示请求地址方面的异常:

400 找不到地址

500~599段 表示内部代码异常:

500 服务器代码异常

posted @ 2021-06-06 15:37  晓天的BigWorld  阅读(3294)  评论(0编辑  收藏  举报