用途:为 Rails 7.x/8.x 构建生产级 REST API 提供完整模式与最佳实践,覆盖从路由设计到文档测试的常见环节。
主要能力:
- RESTful 约定:资源用名词、复数命名,用 HTTP 方法表达动作,嵌套限制 1-2 层,并给出 routes.rb 示例。
- 状态码规范:列出 200/201/204 成功码与 400/401/403/404/422/429/500/503 错误码及适用场景,附控制器示例。
- 序列化:推荐 Blueprinter(含 view、association、options),另提供 JSONAPI::Serializer 与 Alba 两种替代方案及安装 gem。
- 认证:JWT 服务(encode/decode、HS256、过期处理)与 API Key 方案(迁移、模型、控制器认证)。
- 授权:Pundit 策略示例与 403 处理。
- 版本控制:URL 版本(推荐)与 Header 版本(ApiVersion 约束类)。
- 分页:Kaminari 与 pagy 两种实现及 meta 元数据格式。
- 限流:Rack::Attack 按 IP、token、登录邮箱节流,支持黑名单与自定义 429 响应。
- 错误处理:统一错误 JSON 结构、验证错误格式、异常 rescue 映射。
- CORS:rack-cors 配置示例。
- 文档:rswag(OpenAPI/Swagger)安装与请求 spec 示例。
使用方式:按需引入对应 gem(blueprinter、oj、jwt、bcrypt、pundit、kaminari 或 pagy、rack-attack、rack-cors、rswag),将示例代码放入对应目录(controllers、blueprints、services、policies、initializers、spec),并按项目调整密钥、路由与策略。
适用场景:需要规范化设计、认证授权、版本管理、限流与文档的 Rails API 项目。
限制:资料为模式指南,未提供具体版本兼容性、性能基准、收费信息或完整测试用例;部分示例(如 token 吊销、错误上报服务)仅给出占位说明,需自行实现。