引入

1
2
3
4
go install github.com/swaggo/swag/cmd/swag@latest
go get -u -v github.com/swaggo/gin-swagger
go get -u -v github.com/swaggo/files
go get -u -v github.com/alecthomas/template

使用

基础注释

main函数中配置项目基本注解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
package main

// @title 这里写标题
// @version 1.0
// @description 这里写描述信息
// @termsOfService http://swagger.io/terms/

// @contact.name 这里写联系人信息
// @contact.url http://www.swagger.io/support
// @contact.email support@swagger.io

// @license.name Apache 2.0
// @license.url http://www.apache.org/licenses/LICENSE-2.0.html

// @host 这里写接口服务的host
// @BasePath 这里写base path
// @securityDefinitions.basic  BasicAuth
func main() {
	r := gin.New()
	r.Run()
}

api注解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// 函数名 ShowAccount godoc
// @Summary      Show an account
// @Description  get string by ID
// @Tags         accounts
// @Accept       json
// @Produce      json
// @Param        id   path      int  true  "Account ID"
// @Success      200  {object}  model.Account
// @Failure      400  {object}  httputil.HTTPError
// @Failure      404  {object}  httputil.HTTPError
// @Failure      500  {object}  httputil.HTTPError
// @Router       /accounts/{id} [get]
func GetPostListHandler2(c *gin.Context) {
...
}

生成docs文件

1
swag init

配置文档handler

1
engine := gin.New()engine.GET("swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

测试

1
ip:port/swagger/index.html