Gin-swagger完整使用教程「建议收藏」

Gin-swagger完整使用教程「建议收藏」golangginswagger使用教程_ginswagger

准备工作

引入swaggo依赖:

## swagger 依赖
go get "github.com/swaggo/files"
go get "github.com/swaggo/gin-swagger"


## swagger 命令行工具
go get -u github.com/swaggo/swag/cmd/swag
go install github.com/swaggo/swag/cmd/swag

项目地址:《gin-swagger项目地址Github》

进入正题

1、首先在main函数前添加描述:

// @title helloworld
// @version 1.0
// @description chenwenyu test helloworld
// @termsOfService http://swagger.io/terms/

// @contact.name cwy
// @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 cwy.helloworld.com
// @BasePath /base/path
func main() {

}

2、注册swagger路由信息:

import (
    swaggerFiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
)

func main() {

    ...

    //注册swagger路由
    router := gin.Default()
	router.GET("/swagger/*any", func(c *gin.Context) {
		ginSwagger.DisablingWrapHandler(swaggerFiles.Handler, "SWAGGER")(c)
	})

   ...
}

3、 给函数方法添加备注:

POST方法:

type ConfigParam struct {
	Switch          bool   `json:"switch" example:"true"`
	StorageTime     int    `json:"storage_time" example:"7"`
	StorageCapacity int    `json:"storage_capacity" example:"100"`
	InstanceMark    string `json:"instance_mark" example:"10.12.11.1_33066"`
	ClusterMark     string `json:"cluster_mark" example:"10.79.1.1_33066"`
}

type FormRespFail struct {
	Status string `json:"status" example:"0001"`
	Msg    string `json:"msg" example:"some error"`
}

type FormRespSuccess struct {
	Status string `json:"status" example:"0000"`
	Msg    string `json:"msg" example:"success"`
}


// SetConfig
// @Summary SQLTest服务配置
// @Description  SQLTest服务配置
// @Tags SQLTest
// @Accept  json
// @Produce  json
// @Param body body ConfigParam true "请求body"
// @Success 200 {object} utils.FormRespSuccess
// @Router /api/v1/audit/config [post]
func (s *SQLTest) SetConfig(ctx *middleware.Context) {

}

GET方法:

// GetConfig
// @Summary 查询SQLTest服务配置
// @Description  查询SQLTest服务配置
// @Tags SQLTest
// @Accept  json
// @Produce  json
// @Param instance_mark query string true "节点标识"
// @Param start_time query int true "查询起始时间"
// @Param end_time query int true "查询结束时间"
// @Param user query string false "执行用户"
// @Param start_exec_time query int false "执行时长下限"
// @Param end_exec_time query int false "执行时长上限"
// @Param content query string false "SQL内容"
// @Param next_id query int false "下一页ID"
// @Success 200 {object} utils.FormRespSuccess
// @Router /api/v1/audit/config [get]
func (s *SQLTest) GetConfig(ctx *middleware.Context) {
	
}

4、文档初始化

cd helloworld #进入项目根路径
swag init -g ./src/cmd/main.go -o ./docs  #初始化文档
项目结构
```
./helloworld
├── docs
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── go.mod
├── go.sum
└── src
    ├──cmd
       ├── main.go
```

swag init执行成功之后会在项目目录下出现docs子目录,子目录中会出现docs.go,swagger.json,swagger.yaml三个文件,随后在main文件中import docs模块

import (
    _ "helloworld/docs"
)

5、编译运行

编译运行服务,访问本地http://127.0.0.1:8000/base/path/swagger 即可访问swagger文档

Gin-swagger完整使用教程「建议收藏」

今天的文章Gin-swagger完整使用教程「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58773.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注