准备工作
引入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完整使用教程「建议收藏」分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58773.html