目录
1 工具准备
go 版本必须大于1.16
(本次使用的是go1.19.1)
1. 安装swag
go get -u github.com/swaggo/swag/cmd/swag
然后进入github.com/swaggo/swag/cmd/swag 目录执行go install
验证
>swag --version
swag version v1.8.6
2. 下载依赖
go get github.com/swaggo/gin-swagger
go get github.com/swaggo/files
2 修改代码
2.1 修改项目的main.go
// @title Operation API
// @version 1.0
// @description This is a TEST server.
// @Tags Operation API
// @host 127.0.0.1:8080
func main() {
。。。 。。。
}
2.2 修改route 代码
。。。
import (
。。。 。。。
"github.com/gin-gonic/gin"
ginSwagger "github.com/swaggo/gin-swagger"
"github.com/swaggo/files"
)
。。。
func StartGin(port string, r *gin.Engine) {
r.Use(CORS())
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "Hello World!")
})
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
Routes(r)
r.Run(port)
}
func Routes(r *gin.Engine) {
db = config.Con()
nodestr := r.Group("/api/v1/")
nodestr.POST("/node/test1", NodeTestPost)
}
2.3 修改 api实现代码
// @Summary test
// @Description test node
// @Accept application/json
// @Param data body n.HwsnInput true "input"
// @Tags Test Operation API, Internal API
// @Router /api/v1/node/test1 [post]
// @Success 200
func NodeTestPost(c *gin.Context) {
var hwsninput n.HwsnInput
}
3 生成swag文档
在项目的main.go所在目录执行swag init, 然后就会生成/docs的目录和相应的文件
效果
参考:
GitHub - swaggo/swag: Automatically generate RESTful API documentation with Swagger 2.0 for Go.