Schema 只回答一类问题

OpenAPI 非常擅长描述 operation、parameter、request/response 结构、status code 和可复用 schema。因此它适合作为自动生成 reference 和自动验证的事实来源。

问题出现在团队认为“完整 schema = 完整开发者文档”时。

开发者需要一条路径

新用户往往先问:如何认证?使用哪个环境?最小成功请求是什么?资源之间什么关系?如何 retry?这些问题应该由概念性和任务型文档回答,并与 reference 相互链接。

示例承担语义

Schema 可以告诉你一个字段是 string,好示例则告诉你什么值真实、字段如何组合、服务器通常返回什么。尽可能测试示例,并让它们与 API contract 保持足够近,使变更能在 review 时被发现。

把失败当成一等路径

生成的 reference 经常列出错误,却没有说明恢复方式。解释哪些错误可以重试、哪些表示无效状态、rate limit 如何表达,以及支持诊断需要什么 identifier。

不要创造实现没有保证的承诺。不明确的 retry 或 idempotency 是产品问题,不是写作者应该凭空补齐的文字。

让 OpenAPI 做最擅长的事

用 specification 消除字段级事实重复、生成结构并验证示例。把人工编辑精力放在心智模型、workflow、trade-off 和恢复上。

优秀的 API 文档把 schema 当作证据,把发布的网站当作围绕证据设计的开发者体验。

实践示例

把《OpenAPI 是事实来源,但不是完整的 API 文档》变成一个完整的开发者任务。选择一个虚构但真实的资源,例如报告、设备或订单,描述从认证到成功结果的最短路径。包括请求、关键响应字段、一个常见失败以及失败后的下一步。

像真正要根据示例开发客户端一样检查:

  • 开发者必须替换哪些值;
  • 服务器返回哪些标识符,后续在哪里继续使用;
  • 哪个状态或字段表示成功;
  • 凭证、输入或限流失败时应该采取什么动作。

API 文档的目标不是让开发者只认识 endpoint 名称,而是让他们能够预测系统交互。

快速编辑检查

  • Schema 只回答一类问题. OpenAPI 非常擅长描述 operation、parameter、request/response 结构、status code 和可复用 schema。
  • 开发者需要一条路径. 新用户往往先问:如何认证?使用哪个环境?最小成功请求是什么?
  • 示例承担语义. Schema 可以告诉你一个字段是 string,好示例则告诉你什么值真实、字段如何组合、服务器通常返回什么。
  • 把失败当成一等路径. 生成的 reference 经常列出错误,却没有说明恢复方式。

相关阅读