用途:为设计、实现和文档化 RESTful API 提供系统化最佳实践参考,适合在规划接口规范、评审 API 设计或编写 OpenAPI 文档时使用。
主要能力:
- 资源化设计:以名词而非动词组织端点,如 GET /api/v1/users、POST /api/v1/users、GET /api/v1/users/{id}、PUT /api/v1/users/{id}、DELETE /api/v1/users/{id};并说明 GET、POST、PUT、PATCH、DELETE 的语义与幂等性。
- 状态码规范:列出 2xx、4xx、5xx 常见状态码含义,如 200、201、202、204、400、401、403、404、409、422、429、500、502、503、504。
- 版本管理:URL 版本(推荐)与 Header 版本两种方式,并给出兼容性、弃用通知、迁移指南与同时支持至少两个大版本等规则。
- 请求与响应模式:统一 JSON 请求体、查询参数过滤/分页/排序,以及 data、error、pagination、links 等标准响应结构。
- 认证:JWT 登录、刷新与 Bearer 使用方式,API Key 头部与查询参数用法,OAuth 2.0 授权码与客户端凭证流程。
- 错误处理:校验错误、业务逻辑错误、限流错误的响应结构与限流响应头。
- 分页与限流:offset、cursor、page-number 三种分页策略及取舍;令牌桶、固定窗口、滑动窗口算法与分层限额。
- 安全实践:强制 HTTPS、输入校验、输出转义、参数化查询、CORS 白名单、先认证后授权、安全日志、认证端点限流。
- OpenAPI/Swagger:给出 OpenAPI 3.0 文档结构示例,含 paths、components、schemas、securitySchemes。
- 端点设计模式:集合与资源端点、嵌套资源、动作端点(如 POST /api/v1/orders/{id}/cancel)。
- 过滤、排序、搜索:查询参数写法与多值、范围、全文搜索示例。
- 幂等性:GET/PUT/DELETE 幂等,POST 使用 Idempotency-Key 及重复请求处理。
- 异步操作与 Webhook:202 Accepted、任务状态查询、Webhook 载荷与 HMAC 签名校验。
- 性能:ETag 缓存、字段选择、压缩等。
使用方式:作为设计参考与检查清单,在定义接口、编写规范或评审时对照使用;示例中的代码与命令保持原样,可按需替换为自身技术栈。
适用场景:新 API 设计、既有 API 规范化、OpenAPI 文档编写、安全与限流方案制定。
限制:资料为通用实践指南,未提供具体框架的完整实现、部署步骤、收费或价格信息;部分内容(如压缩示例)在资料中未完整给出。