【笔记】RESTful接口设计

前言

REST风格的API(Application Programme Interface)接口设计
RESTful只是一种规范建议,开发中应以实际规范为准

请求路径

  • 以操作的实体对象的复数作为请求路径
1
http://localhost/users

请求类型

  • 根据不同的操作选用不同的请求方式
  • RESTful请求通过请求类型+请求路径的方式操作资源

请求类型

GET:SELECT操作,从服务器中查询单个或多个资源
POST:INSERT操作,向服务器中新增单个资源
PUT:REPLACE操作,从服务器中修改单个资源,覆盖所有属性
PATCH:UPDATE操作,从服务器中修改单个资源,修改部分属性
DELETE:DELETE操作,从服务器中删除单个资源
HEAD:从服务器中获取单个资源的元数据(如:Hash值、最后修改时间)
OPTIONS:从服务器中获取针对于单个资源的所有可执行操作

获取一个用户信息

1
GET http://localhost/users/{id}

查询一个组的所有用户信息

1
GET http://localhost/group/{group_id}/users

获取所有用户信息

1
GET http://localhost/users

新增一个用户信息

1
POST http://localhost/users

修改一个用户的全部信息

1
PUT http://localhost/users/{id}

修改一个用户的部分信息

1
PATCH http://localhost/users/{id}

删除一个用户信息

1
DELETE http://localhost/users/{id}

响应数据

  • 查询资源
    • 查询单个资源:返回查询到的资源对象
    • 查询多个资源:返回查询到的资源对象数组
  • 新增资源:返回新增后的资源对象
  • 修改资源:返回修改后的资源对象
  • 删除资源:返回空

响应状态码

响应状态码

20x

200:服务器成功完成操作
201:新增或修改操作成功
202:服务器已将操作异步的放到队列中
204:删除操作成功

40x

400:服务器没有完成操作
401:客户端无权限(如:密码错误、令牌错误),所以服务器没有完成操作
403:客户端无授权(如:客户端的操作是禁止的),所以服务器没有完成操作
404:客户端访问的路径不存在,所以服务器没有完成操作
406:客户端请求时的参数格式有误

50x

500:服务器内部错误

资源的表现形式

Accept期望接收的数据类型

  • 在请求头中指定
1
Accept: application/json

Content-Type实际发送的数据类型

  • 在请求头中指定
1
Content-Type: application/json

Content-Type实际发送的数据类型

  • 在响应头中指定
1
Content-Type: application/json

完成

参考文献

哔哩哔哩——浪飞yes