写文档和写任何东西一样,先想清楚「给谁看」。API 文档的读者基本分两类:决定用不用这款 API 的决策者,以及真正调用它的开发者。文档要同时满足两者——对决策者讲清价值(像产品规格书),对开发者给足细致指引与代码示例。
再强的 API,用户不会用也等于零。本文编译自 Nordic APIs(2020-04-23),系统梳理 API 文档必须具备的五大组件(认证、资源、错误、条款、变更日志)与五条最佳实践(避术语、全量文档、附资源、快速上手、给示例代码),并对照 Auth0/WordPress/Mailchimp/GitHub/YouTube/Braintree 等范例。
写文档和写任何东西一样,先想清楚「给谁看」。API 文档的读者基本分两类:决定用不用这款 API 的决策者,以及真正调用它的开发者。文档要同时满足两者——对决策者讲清价值(像产品规格书),对开发者给足细致指引与代码示例。
虽然每个 API 不同,但大多数都包含一些基础构件,开发者上手时最先找的往往就是这些:认证方式、资源/端点清单、错误说明、使用条款与变更日志。
认证是用户接触 API 的第一道门,相当于解锁的钥匙。几乎每个 API 都有某种认证方案,且各不相同。文档要把「怎么拿到访问权限」讲清楚——可参考 Auth0 的认证文档,简洁又详尽。
用户得知道你的 API 能做什么。逐个列出端点及标准命令与响应,能帮你站在终端用户角度思考、把每个响应都写成易懂文档。WordPress 的 API 文档就是范例:每个命令单独成页,标注所需 HTTP 方法(GET/POST),复杂文档里「组织与可导航性」是关键。
排错很可能是用户查文档的头号原因。要有一节完整解释所有返回的错误信息,最好附带一两个常见问题的修复示例。Mailchimp 的 Error Glossary 从 400 到 500 逐条说明全局错误,是可借鉴的样板。
条款是你与用户之间的法律约定,应写明 API 限制、约束、品牌规范与可接受的使用方式。Spotify 的 Terms of Service 可作为范本。
变更日志让用户知道你的 API 有多稳定,也能在调用失败时第一时间来查「哪里变了」。GitHub 的 Developer Changelog 提供通用可用性、弃用与停服的详尽更新,是优秀样板。
你无法控制谁来消费你的 API,用户水平参差。黑话有两害:决策者往往不技术,想说服他们投资,大白话比术语管用得多;不同水平的开发者也都希望文档好懂。非用术语不可时,给个术语表或教程链接。YouTube 的 API 文档就是「用大白话写透彻」的例子。
文档里「信息再多也不嫌多」。新手需要手把手引导直到融入工作流,所以要文档化每一次调用、参数与响应,连错误码也写全,让用户一眼看清会返回什么,出事不必去搜。超出文档范围的内容,给出延伸资源链接,别让用户被迫跳到搜索引擎——那会留下负面印象。
让用户尽快跑起来,最能证明你的 API 好用——给一份快速上手指南(参考 Braintree)。最快的上手方式是附示例代码:用户把样例里的 API key 换成自己的就能跑,还能当可反向工程的范本。建议每个小节配文档、末尾给一段串起所有功能的示例代码。
五组件里最该被「自动化」的是资源清单、错误说明与变更日志——它们最易随接口变动而过时。YesApi Pro 开放平台基于接口定义自动生成在线文档、多语言 SDK 与示例,把「写文档」变成「定义即文档」,并自动产出变更日志,避免人工维护滞后;开发者拿到手就是最新、可运行的文档。