Published on

gin中集成swagger自动生成文档

Authors

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