- Published on
gin中集成swagger自动生成文档
- Authors
- Name
- JiGu
- @crypto20x
1.安装 Swag
go get -u github.com/swaggo/swag/cmd/swag
安装完后,swag 工具会自动加入环境变量。
# 敲入
swag --help
NAME:
swag - Automatically generate RESTful API documentation with Swagger 2.0 for Go.
USAGE:
swag [global options] command [command options] [arguments...]
VERSION:
v1.6.7
COMMANDS:
init, i Create docs.go
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
--version, -v print the version (default: false)
说明安装成功
2.引入依赖包
import "github.com/swaggo/gin-swagger" // gin-swagger middleware
import "github.com/swaggo/files" // swagger embed files
3.在gin的代码中加入
import "github.com/swaggo/files"
import "github.com/swaggo/gin-swagger"
/*
* 在gin的路由中加入
*/
url := ginSwagger.URL(":6014/swagger/doc.json")
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))
3.在代码中添加swagger注释
// @title 项目名称 swagger
// @version 1.0
// @description 项目名称 swagger api文档
// @host localhost:6014
// @BasePath /
func main(){
}
/*
* 在 gin的handle函数上,加上swagger注释
*/
// @Summary 安装链码
// @Tags 链码
// @version 1.0
// @Accept application/json
// @Param ChaincodeInstall body controller.ChainCodeInstall true "安装链码"
// @Success 200 object serializer.Response 成功后返回值
// @Failure 500 object serializer.Response 安装失败
// @Router /chaincode/install [post]
func Ping(c *gin.Context) {
c.JSON(serializer.OK, serializer.Response{
Code: 0,
Msg: "Pong",
})
}
4.生成docs文件夹
# 在工程根目录下
swag init
每次代码更新后,需重新生成一遍
5.最重要的一步,隐引入刚生成的docs,否则会失败
import _ "你的项目路径/docs" // 上面生成的docs文件夹
一般在main.go中引入
6.查看swagger文档
#启动程序
go run main.go
访问swagger文档 http://127.0.0.1:6014/swagger/index.html
文档
注释说明 https://github.com/swaggo/swag#declarative-comments-format