用途:在 Web 框架之上设计 REST/HTTP API 及其契约,把一组领域名词转化为一致、可演进的 HTTP 接口面。适用于从领域实体设计新 API、判断状态码(如 400 与 422、401 与 403、PUT 与 PATCH)、定义或修正错误模型、成功信封与分页方案、决定版本/认证/限流立场,以及把设计落为 OpenAPI 3.1 契约。
主要能力与默认做法:资源用名词、集合用复数且一致,路径小写连字符,嵌套最多两层,公开契约避免暴露自增主键;按 RFC 9110 分配方法,PUT 全量替换、PATCH 部分合并,GET 无副作用,可重试的创建接受 Idempotency-Key;状态码与结果匹配,禁止用 2xx 包裹错误;全 API 只用一种错误模型,默认 RFC 9457 problem+json(application/problem+json),含 type、title、status、detail、instance 及 errors 扩展;集合必须分页,默认 limit 20、上限 100,默认游标分页,小且稳定的数据集才用 offset;默认 URL 路径版本(/v1/...),仅破坏性变更升主版本,用 Deprecation/Sunset 头提示退役;认证写入契约(用户 API 用 Bearer/JWT,服务间用 API-Key),始终 HTTPS;限流基线为 429 + Retry-After,可加 X-RateLimit-* 提示头;最终以 OpenAPI 3.1(JSON Schema 2020-12,可空用 type: ["string","null"])表达契约。
使用方式:按工作流依次执行建模资源、分配方法与幂等性、选择状态码、定义单一错误模型、统一成功与分页信封、决定版本/认证/限流、映射为 OpenAPI 3.1 契约。示例代码为 Python/FastAPI + Pydantic v2 风格,但决策与语言无关。
限制:仅覆盖 REST/HTTP,不涉及 GraphQL 或 gRPC;框架机制(路由、依赖注入、response_model)与数据模型建模分别属于 fastapi 和 pydantic-v2 技能;大规模 OpenAPI 编写、校验、mock 与 SDK 生成属于独立事项。资料未提供收费、价格或平台信息。