Restful 风格

Posted abysschen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Restful 风格相关的知识,希望对你有一定的参考价值。

在进行API接口设计时,不同的开发人员可能有不同的设计风格,风格迥异。那是否存在一种统一的接口设计方式,被广大开发人员所接受呢?这就是被普遍采用的RESTful API设计风格。

1. URL路径

URL地址尽量使用名词复数,不要使用动词。

# 不好的例子
/getProducts
/listOrders

# 正确的例子
GET /products:将返回所有产品信息
POST /products:将新建产品信息
GET /products/4:将获取产品4
PUT /products/4:将更新产品4

2. 请求方式

访问同一个URL地址,采用不同的请求方式,代表要执行不同的操作。

常用的HTTP请求方式有下面四个:

技术图片

 

 

 例如:

GET /books:列出所有图书数据
POST /books:新建一本图书数据
GET /books/<id>/:获取某个指定的图书数据
PUT /books/<id>/:更新某个指定的图书数据
DELETE /books/<id>/:删除某个指定的图书数据

3. 过滤信息

过滤参数可以放在查询字符串中。

在访问API接口获取数据时,可能需要对数据进行过滤。

常见的参数:

?limit=10:指定返回记录的数量
?offset=10:指定返回记录的开始位置。
?page=2&pagesize=100:指定第几页,以及每页的记录数。
?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

4. 响应数据

针对不同操作,服务器向用户返回不同的响应数据。

一般遵循以下规范:

1. 获取一组数据,返回一组数据
2. 获取指定数据,返回指定数据
3. 新增数据,返回新增的数据
4. 修改数据,返回修改的数据
5. 删除数据,返回空

5. 响应数据格式

服务器返回的响应数据格式,应该尽量使用JSON。

6. 响应状态码

服务器向客户端返回的状态码和提示信息,常见的状态码如下:

200 OK - [GET/PUT]:服务器成功返回用户请求的数据
201 CREATED - [POST]:用户新建数据成功。
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

 

以上是关于Restful 风格的主要内容,如果未能解决你的问题,请参考以下文章

restful 风格 加上springmvc

PHP实现Restful风格的API

PHP实现Restful风格的API(转)

在spring中使用webservice(Restful风格)

springboot集成spring security实现restful风格的登录认证 附代码

PythonDjango 支持 restful 风格 url