OpenAPI Specification:给 HTTP API 写一份统一的说明书 文章目录OpenAPI Specification给 HTTP API 写一份统一的说明书这东西解决什么问题它覆盖了什么实际能拿来干什么怎么上手谁该关注这个项目OpenAPI Specification给 HTTP API 写一份统一的说明书OpenAPI Specification 在 GitHub 上有 31,060 Star。这个项目由 OpenAPI Initiative 推动挂在 Linux 基金会下面做的事情只有一件给 HTTP API 定一套标准的描述格式。这东西解决什么问题写后端的人有个共同烦恼接口文档永远跟不上代码。你用 Swagger 也好手写 Markdown 也好只要接口一改文档就得跟着改。改着改着就没人愿意改了最后文档和实际接口对不上前端只能来问你这个字段到底返回什么。OpenAPI 的思路是别让人写文档了用一种机器能读的格式把接口描述清楚。YAML 或者 JSON 都行写一份工具链自己去生成文档、生成客户端代码、跑测试。人能看机器也能看两边都不用猜。它覆盖了什么OpenAPI 描述的是 HTTP API 的全貌请求方法、路径、参数、请求体、响应体、认证方式、错误码。不管你的 API 是 REST 风格还是别的只要走 HTTP就能用 OpenAPI 来描述。描述文件可以手写也可以从代码里动态生成。工具不限语言Go、Java、Python、JavaScript 都有对应的库。实际能拿来干什么拿到一份 OpenAPI 描述文件之后能做的事情很多交互式文档。把文件扔给 Swagger UI 或者 Redoc直接生成一个可以在浏览器里试调的文档页面比静态 Markdown 好用太多。代码生成。客户端 SDK、服务端框架骨架都能从描述文件自动生成。省掉手写 HTTP 请求和响应解析的重复劳动。测试自动化。根据描述文件里的参数定义和响应格式自动跑参数校验、边界测试不需要额外写测试用例。Mock 服务。前后端约定好接口之后直接用描述文件起一个 Mock 服务器前端不用等后端开发完就能联调。怎么上手这个仓库本身就是规范文档的源码所有已发布的版本都在 versions 目录下面。想看实际效果官方有个示例列表各种场景的 API 描述文件都有。想自己动手写照着示例改就行YAML 格式结构很直观。如果不想手写社区有大量工具能从代码自动生成 OpenAPI 文件。Spring Boot、FastAPI、Express 这些主流框架都有内置或插件支持。谁该关注这个项目在做微服务架构、服务之间要互相调用的团队OpenAPI 几乎是标配。一个统一的接口描述格式能让跨团队协作顺畅很多。在搭 API 网关或者管理平台的人底层大概率已经在用 OpenAPI 了。了解规范本身出问题的时候排查会快一些。做开发者工具的如果产品需要读取或者生成 API 文档OpenAPI 是绕不开的格式。排查会快一些。做开发者工具的如果产品需要读取或者生成 API 文档OpenAPI 是绕不开的格式。