Swag Go API 文档生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/generate-go-api-docs-from-source-annotations-with-swag
技能介绍
要解决的问题
Go 后端项目里,API 文档往往散落在代码注释、wiki 和口头约定中。等到客户端要对接、或者发版前需要做接口评审时,才发现文档与实际路由、参数已经对不上。Swag 的思路是把文档绑定到源码上:在 handler 上方直接写声明式注释,工具扫描源码树后生成 Swagger 2.0 文档,文档与代码始终放在一起演进。本技能面向的场景是:当 agent 需要在文档评审、客户端生成或发版检查之前,把 Go handler 上的注释变成一份可评审的 Swagger 2.0 文档时,按正确流程完成这件事。
技能如何工作
核心流程分三步:
- 定位入口:扫描带声明式注释的 Go API 源码树,确定承载一般信息(general API info)的入口文件,通常是
main.go。 - 解析注释:读取 handler 上方的
// @注释,覆盖路由、参数、响应结构与扩展字段。扩展字段的键必须以x-开头,且只能取 JSON 值,例如// @x-example-key {"key": "value"}。 - 生成并接入:生成文档后,必须 import 生成的
docs/docs.go,让对应配置完成init。若一般信息不在main.go中,用-g标志显式指定入口文件。
适用边界与注意点
- 仅覆盖 Go 生态的 Swagger 2.0 文档生成,不是 OpenAPI 3.x 的完整方案。
- 输出质量取决于注释质量:注释缺失或与实现不一致时,生成的文档同样缺失或失真,工具不会替你校验实现。
- 注释格式遵循上游声明式注释规范,团队需要自行约定书写风格与维护责任。
使用场景
- 后端团队在合并 Go 路由代码前,需要根据 handler 上方的注释自动生成 Swagger 2.0 文档,供前端进行接口评审。
- 客户端准备对接新接口时,需要将 Go 源码中的声明式注释扫描并转成 Swagger 2.0 JSON,以便直接生成请求代码。
- CI 流水线在发版检查环节,需要调用工具解析 Go 项目目录,校验接口文档是否与代码注释保持同步并输出最终文档。
- 项目入口文件不在 main.go 时,需要通过指定参数让 Swag 正确识别 general API 注释并生成可被程序加载的文档包。
适合人员
- 后端 Go 工程师,需要在提交代码时确保 API 文档与 handler 实现严格同步,避免人工维护文档导致的遗漏。
- 前端接口对接人员,需要获取准确且结构化的 Swagger 2.0 文档来编写和调试客户端请求代码。
- 研发团队的 CI/CD 负责人,需要在发版流水线中加入自动化校验,确保源码注释生成的文档符合发布标准。
- 开源项目维护者,需要一种轻量级方案将接口说明直接绑定在源码中,降低贡献者理解 API 的门槛。