通过验证只是起点

从 schema 自动生成的示例可以语法正确却毫无教学价值。string、123、foo 能通过很多 validator,但隐藏了领域意义。好示例应该让读者明白请求为什么存在,以及成功结果能继续做什么。

使用真实感强的值,但不要放入真实 secret 或个人数据。

构造一个小故事

优先展示真实任务序列:创建资源、读取、更新,再处理失败或清理。让 identifier 在步骤之间复用,读者才能看到关系。

在单独的 reference 页里链接到相应 workflow,而不是每个 endpoint 都复制完整 tutorial。

展示真正重要的 response

不要只给 request。展示 status、关键 header 和 body,并指出不明显字段的意义。如果操作是异步的,说明 client 如何知道任务完成。

错误示例同样重要。一个真实的 validation error 往往比另一个 happy path 更能解释 API。

尽可能让示例可执行

可以的话,在 CI 里运行请求或根据 contract 验证 payload。把 sample 存成文件或生成片段,不要手工把同一段代码复制到多页。

优化“可迁移性”

告诉读者应该修改哪些变量,以及哪些前提不能改变。示例的目标是建立可迁移的心智模型。

如果一个示例没有让下一次请求更容易设计,它很可能只是装饰。

实践示例

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

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

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

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

快速编辑检查

  • 通过验证只是起点. 从 schema 自动生成的示例可以语法正确却毫无教学价值。
  • 构造一个小故事. 优先展示真实任务序列:创建资源、读取、更新,再处理失败或清理。
  • 展示真正重要的 response. 不要只给 request。展示 status、关键 header 和 body,并指出不明显字段的意义。
  • 尽可能让示例可执行. 可以的话,在 CI 里运行请求或根据 contract 验证 payload。

相关阅读