Iris-go 集成swagger
swagger官方文档https://github.com/iris-contrib/swagger
1.安装swgger
配置代理
go env -w GOPROXY=https://goproxy.cn,direct
go get -u github.com/swaggo/swag/cmd/swag
go get github.com/iris-contrib/swagger/v12@v12.2.0-alpha
swag -version
2.初始化
在main.go的同级目录执行
swag init
会生成3个文件docs.go
swagger.json
swagger.yaml
3.在main.go
中配置注释
// swagger middleware for Iris
// swagger embed files
// @title Swagger Example API
// @version 1.0
// @description This is a sample server Petstore server.
// @termsOfService http://swagger.io/terms/
// @contact.name API Support
// @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 localhost:8085
// @BasePath /vue
4.在路由文件routes.go
中加入下列代码
// swagger配置
config := swagger.Config{
// 指向swagger init生成文档的路径
URL: "http://localhost:8085/swagger/doc.json",
DeepLinking: true,
}
app.Get("/swagger/*any", swagger.CustomWrapHandler(&config,swaggerFiles.Handler))
5.使用官方注释配置接口
官方注释文档https://swaggo.github.io/swaggo.io/declarative_comments_format/general_api_info.html
例子:
// @Summary 获取学生列表
// @Description
// @Tags 学生
// @Accept application/json
// @Produce application/json
// @Param Authorization header string true "Bearer token"
// @Param object query models.student false "查询参数"
// @Param name query string true "name"
// @Param body body st.PaySearch true "交款查询参数"
// @Param tel query string true "tel"
// @Success 200 {object} models.Result
// @Failure 400 {object} models.Result
// @Router /student/list [get/post]
func getStudentList(ctx iris.Context) {
.....
}
6.重新生成swagger文档
每当接口注释写完后,都需要执行命令
swag init -g main.go