gin-swagger用法

https://github.com/swaggo/swagarrow-up-right

安装 swag

  1. 下载安装swag命令

//go版本1.16之前使用该命令
go get -u github.com/swaggo/swag/cmd/swag

//go版本1.16版本以及之后的版本使用该命令
go install github.com/swaggo/swag/cmd/swag@latest

安装 gin-swagger

$ go get -u github.com/swaggo/gin-swagger

$ go get -u github.com/swaggo/gin-swagger/swaggerFiles

编写API注释

Swagger 中需要将相应的注释或注解编写到方法上,再利用生成器自动生成说明文件

gin-swagger 给出的范例:

// @Summary Add a new pet to the store
// @Description get string by ID
// @Accept  json
// @Produce  json
// @Param   some_id     path    int     true        "Some ID"
// @Success 200 {string} string    "ok"
// @Failure 400 {object} web.APIError "We need ID!!"
// @Failure 404 {object} web.APIError "Can not find ID"
// @Router /testapi/get-string-by-int/{some_id} [get]

我们可以参照 Swagger 的注解规范和范例去编写

生成

我们进入到项目根目录中,执行初始化命令

swag init 指定的文件就是包含了以下swagger通用注释的文件

执行swag init之后会生成一个文件夹 doc 查看doc/doc.go是否有问题,目前存在一个问题,是当swag 的版本是1.7.9时,执行swag init,会出现冲突可以参考:https://github.com/swaggo/swag/issues/1126arrow-up-right

解决方法:安装预编译版本并下载另外一个包

导入相关的包以及加入swagger的路由:

除了导入以上 ginSwagger “github.com/swaggo/gin-swagger”、swaggerFiles "github.com/swaggo/gin-swagger/swaggerFiles"两个包,还要将swag init的doc包导入进来,并可以对doc包里的内容进行修改

doc.go

启动

执行 swag init 刷新 doc文件

启动服务,访问页面 http://localhost:9090/swagger/index.htmlarrow-up-right,查看相关注释是否生效

说明

对于注释位置,其实对于函数位置其实是无所谓的,你注释写在什么方法上都行,因为在生成swagger文件的时候,是根据你指定的包去扫描的,去扫描这个包里面的go文件,上面的func是否有相关注释,有注释,就能当成一个api,所以并不仅仅限制于 func(ctx *gin.context) 这样的函数,写在handle函数上面是为了方便于handle一一对应,对于程序员来说方便寻找,以及方便修改接口的同时修改swagger

swagger的核心就是,获取项目的swagger api信息,将swagger信息通过项目路由出去

swagegr与其他web项目的结合也就是为了方便路由,对于获取项目的swagger api 可以使用注释以及 swag init命令的形式获取swag init命令的详细使用如下:

Last updated