17 1 月 2026, 周六

在 RESTful API 设计中,遵循一定的规范可以确保系统的接口一致性、可维护性和易扩展性。以下是 REST 请求的一些常见规范:

1. HTTP 方法 (Methods)

RESTful API 使用标准的 HTTP 方法来执行不同的操作:

  • GET:获取资源,不应有副作用,只用于读取数据。
  • POST:创建资源,提交数据到服务器。
  • PUT:更新资源,通常用于完全替换资源。
  • PATCH:部分更新资源,通常用于更新资源的某些字段。
  • DELETE:删除资源。
  • HEAD:获取响应的头部信息(不返回内容),用于检查资源的状态。

2. URL 设计规范

  • 资源标识符:API 的 URL 应该以资源为核心,路径通常使用复数名词。例如:

    • GET /users:获取所有用户
    • POST /users:创建用户
    • GET /users/{id}:获取单个用户
    • PUT /users/{id}:更新用户
    • DELETE /users/{id}:删除用户
  • 资源层级:如果资源之间存在从属关系,可以使用嵌套路径来表示。例如:

    • GET /users/{id}/posts:获取某个用户的所有帖子
    • POST /users/{id}/posts:为某个用户创建帖子
  • 避免使用动词:URL 中应该尽量避免使用动词,API 方法已经通过 HTTP 方法(GET、POST、PUT 等)来定义操作。例如:

    • 正确:GET /users
    • 错误:GET /getUsers

3. 请求和响应格式

  • 请求格式:通常使用 JSON 格式作为请求和响应的格式。确保在请求头中设置 Content-Type: application/json,如果是提交 JSON 数据。

    • 请求体:{ "name": "John", "email": "john@example.com" }
  • 响应格式:API 响应通常使用 JSON 格式,并且返回一个 HTTP 状态码来指示请求的处理结果。

4. HTTP 状态码

RESTful API 使用 HTTP 状态码来表示操作结果。常见的状态码包括:

  • 200 OK:请求成功,并返回数据(通常用于 GETPUT 请求)。
  • 201 Created:资源创建成功(通常用于 POST 请求)。
  • 204 No Content:请求成功,但没有返回内容(通常用于 DELETE 和某些 PUT 请求)。
  • 400 Bad Request:请求无效,客户端错误。
  • 401 Unauthorized:未授权,通常在需要认证的请求中返回。
  • 403 Forbidden:禁止访问,客户端没有权限执行该操作。
  • 404 Not Found:资源未找到,通常是请求的资源不存在。
  • 405 Method Not Allowed:请求的方法不被允许,例如用 GET 请求提交数据。
  • 500 Internal Server Error:服务器错误,通常是由于服务器处理请求时出错。

5. 请求参数

  • 查询参数:通常用于筛选、分页和排序数据。例如:

    • GET /users?page=2&limit=10:分页获取用户数据
    • GET /users?status=active:筛选状态为 active 的用户
  • 路径参数:用于指定资源的唯一标识符。例如:

    • GET /users/{id}:获取 ID 为 {id} 的用户
    • PUT /users/{id}:更新 ID 为 {id} 的用户
  • 请求体参数:通常用于 POSTPUTPATCH 请求,传递要创建或更新的数据。例如:

    • POST /users 请求体:{ "name": "John", "email": "john@example.com" }

6. 分页、排序和过滤

RESTful API 应该支持分页、排序和过滤功能,确保 API 能够处理大量数据。

  • 分页:通过 pagelimit 参数来指定当前页和每页数据条数。

    • GET /users?page=2&limit=10
  • 排序:通过 sort 参数指定排序字段及顺序。

    • GET /users?sort=name&order=asc
  • 过滤:通过查询参数来过滤数据。

    • GET /users?status=active&age=25

7. 版本控制

API 的版本控制是非常重要的,可以通过 URL 或请求头来指定版本:

  • URL 版本控制:例如,/v1/users/v2/users

    • GET /v1/users
    • GET /v2/users
  • 请求头版本控制:在 Accept 头中指定版本。

    • 请求头:Accept: application/vnd.myapi.v1+json
    • 这种方式使得 URL 更干净,也避免了版本号冲突的问题。

8. 错误处理和响应格式

错误响应应该包含足够的信息,以帮助客户端理解错误并进行相应的处理。常见的错误响应格式:

{
  "error": {
    "code": 400,
    "message": "Invalid input data",
    "details": "The 'name' field is required."
  }
}
  • code:HTTP 状态码。
  • message:错误信息。
  • details:可选,提供更多的错误细节。

9. 认证与授权

常见的认证方式有:

  • Token 认证:通过传递令牌来验证请求。常见的方式是通过 HTTP 头部传递 Authorization: Bearer {token}

  • OAuth 认证:通过 OAuth 协议进行第三方授权。

总结

RESTful API 的设计规范包括:

  1. 使用标准的 HTTP 方法(GET、POST、PUT、DELETE、PATCH)。
  2. 资源路径使用复数名词,避免使用动词。
  3. 请求和响应使用 JSON 格式。
  4. 使用标准的 HTTP 状态码来表示请求结果。
  5. 支持分页、排序和过滤查询参数。
  6. 采用版本控制,保持接口向后兼容。
  7. 统一的错误响应格式,提供清晰的错误信息。

遵循这些规范可以帮助开发者设计出清晰、易用且符合标准的 RESTful API。

Avatar photo