go使用Swagger
go使用Swagger
1 安装Swagger依赖
1 | go get -u github.com/swaggo/swag/cmd/swag |
1 |
|
2 如何使用Swagger
2.1 初始化文档
使用swag CLI生成文档,可使用下面指令生成Swagger文档(默认是生成docs.go、swagger.json和swagger.yaml文件)
1 | swag init |
注意:使用init之后一定要记得之后再router对应代码文件中导入生成的docs目录比如import _ "user_service/docs"
swag init 常用选项
| 选项 | 说明 | 默认值 |
|---|---|---|
--generalInfo, -g |
指定包含通用 API 信息的 Go 文件路径 | main.go |
--dir, -d |
指定解析的目录 | ./ |
--exclude |
排除解析的目录(多个目录用逗号分隔) | 空 |
--propertyStrategy, -p |
结构体字段命名规则(snakecase、camelcase、pascalcase) |
camelcase |
--output, -o |
输出文件目录(swagger.json、swagger.yaml 和 docs.go) |
./docs |
--parseVendor |
是否解析 vendor 目录中的 Go 文件 |
否 |
--parseDependency |
是否解析依赖目录中的 Go 文件 | 否 |
--parseInternal |
是否解析 internal 包中的 Go 文件 |
否 |
--instanceName |
设置文档实例名称 | swagger |
2.2 格式化Swagger注解
使用swag fmt命令可以格式化项目中的Swagger注释,确保注释符合规范:
1 | swag fmt |
3 Swagger 注释格式
Swagger 使用声明式注释来定义 API 的元信息。以下是常用注释及其说明:
3.1 通用 API 信息
通常在 main.go 中定义,用于描述整个 API 的基本信息:
1 | // @title Swagger Example API |
3.2 API 路由注释
在具体路由处理函数上方添加注释,定义该接口的行为:
1 | // GetPostById |
3.3 示例项目代码
以下是一个完整的示例,展示如何在 Gin 项目中集成 Swagger:
1 | package main |
4 生成并访问文档
- 运行
swag init生成文档。 - 启动项目:
go run main.go。 - 在浏览器中访问
http://localhost:8080/swagger/index.html,即可查看交互式 API 文档。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 长白崎の个人博客!
评论






