RESTful API 设计规范
好的 API 设计让前后端协作效率翻倍。从 URL 命名到状态码选择,从版本管理到文档生成,一套可落地的规范。
一、RESTful 的核心原则
- 1.1 资源导向——URL 是名词而非动词
- 1.2 HTTP 方法语义——GET / POST / PUT / DELETE / PATCH
- 1.3 状态码的正确使用
- 1.4 无状态——每个请求包含全部信息
二、URL 命名规范
- 2.1 复数形式——
/users而非/user - 2.2 层级关系——
/users/{id}/orders - 2.3 避免深层嵌套——最多 3 层
- 2.4 使用短线分隔——
/user-addresses而非/user_addresses - 2.5 常见设计示例
三、HTTP 状态码的选择
- 3.1 2xx——200 OK / 201 Created / 204 No Content
- 3.2 3xx——301 Moved Permanently / 304 Not Modified
- 3.3 4xx——400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found / 409 Conflict / 422 Unprocessable Entity
- 3.4 5xx——500 Internal Error / 502 Bad Gateway / 503 Service Unavailable
- 3.5 状态码使用决策树
四、统一响应格式
- 4.1
{ code, message, data, timestamp, traceId } - 4.2 分页响应——
{ data, total, pageNo, pageSize } - 4.3 错误码体系——模块编号 + 错误序号
五、API 版本管理
- 5.1 URL 路径版本——
/v1/users、/v2/users - 5.2 请求头版本——
Accept: application/vnd.api+json;version=2 - 5.3 查询参数版本——
/users?version=2 - 5.4 推荐路径版本——最直观
六、接口文档管理
- 6.1 Swagger 3(OpenAPI 3)基本注解
- 6.2 Knife4j——Swagger 的增强 UI
- 6.3 Apifox / YApi——文档 + Mock + 测试
- 6.4 文档先行 vs 代码先行
七、总结
- RESTful 不是银弹——复杂业务操作可适度使用 RPC 风格
- 好的 API 规范应该让调用方”不需要看文档”
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!