Iris-go 集成swagger

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

7.启动项目,访问http://localhost:8085/swagger/index.html

上一篇:InterSystems IRIS医疗行业版创建FHIR服务器


下一篇:机器学习算法(一): 基于逻辑回归的分类预测