RESTful API规范
什么是Web API
简单的说就是如果一个URL返回的不是HTML, 而是某种格式化的数据字符串, 比如JSON
、XML
等, 那么这个URL就可以说是一个Web API
.
Web API
就是把Web应用的功能封装起来, 通过操作API就可以使用该Web应用提供的数据和功能.
什么是REST
REST
(Representational State Transfer
)是一种软件架构模式的风格,
也可以说是一种设计Web API
的架构模式.
REST
架构的主要原则:
- 所有事物都被抽象为资源
- 每个资源都有唯一的资源标识符
- 同一个资源可以有多种表现形式, 比如json、xml等
- 对资源的所有操作都不会改变资源标识符
- 对资源的所有操作都是无状态的
符合REST
原则的架构方式就可以称为RESTful
.
RESTful API规范
URL设计规范
- URL表示资源, 应该使用名词, 且是复数形式, 比如:
|
|
而不要写成:
|
|
- 多个单词组成的资源名称, 应该使用
-
连接, 比如:
|
|
而不要写成:
|
|
避免通过多级URL嵌套资源
到表示资源的这级路径后, 只允许继续扩展1级路径表示具体的某个资源, 不允许继续扩展路径表示其他含义, 应使用参数代替. 比如:
|
|
应该改为:
|
|
也就是说除资源路径开始最多只能扩展一级路径, 表示具体的某个资源, 其他功能都使用参数来表示.
URL结尾不要有
/
我们设计的
URL
结尾不要加/
.如果用户请求的url结尾有
/
, 使用重定向的方式去除/
, 大部分Web框架会自动做这个处理.正确的写法:
|
|
不要设计成:
|
|
- 不要使用文件扩展名
比如应该设计成这样:
|
|
不要设计成这样:
|
|
使用版本号
比如:
|
|
在URL路径开始部分加上版本号.
请求方法规范
用来操作URL的方法(Method
)有如下:
GET
: 获取资源列表, 或单个资源POST
: 创建资源PUT
: 更新资源PATCH
: 更新资源的某个或某些属性(字段)DELETE
: 删除资源OPTIONS
: 获取服务端允许对资源操作的方法有哪些.
POST/PUT/PATCH
请求参数建议使用JSON
格式将参数放到请求体中.
参考
https://restfulapi.net/resource-naming/
https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design
https://demo.doc.coding.io/
https://help.coding.net/docs/management/api/import/openapi.html