参考链接:https://github.com/iris-contrib/swagger
1、安装swagger
go get -u github.com/swaggo/swag/cmd/swag
2、生成
swag init
# 指定路径的用法
swag init .\server\main.go
注意:一定要在main.go的同级目录下执行
执行完成后会在docs文件夹下面生成doc.go
、swagger.json
和swagger.yaml
三个文件
3、使用
在main.go
或者router
中中引入相关方法
package main
import (
"github.com/kataras/iris/v12"
"github.com/iris-contrib/swagger/v12"
"github.com/iris-contrib/swagger/v12/swaggerFiles"
_ "learn-code/iris/docs" // 必须引入生成后的路径
)
func main() {
app := iris.New()
config := &swagger.Config{
URL: "http://localhost:8080/swagger/doc.json", //The url pointing to API definition
}
// use swagger middleware to
app.Get("/swagger/{any:path}", swagger.CustomWrapHandler(config, swaggerFiles.Handler))
app.Run(iris.Addr(":8080"))
}
至此,访问http://localhost:8080/swagger/index.html
即可
4、语法
// PutOrder
// @Summary 修改订单
// @Description 根据传入的参数修改订单
// @Tags 后台-订单管理
// @Accept json
// @Produce json
// @Param id path int true "ID"
// @Param object body vo.PutOrderReq true "参数"
// @Success 200 {object} infra.bodyObject "{"code":0,"msg":"成功"}"
// @Failure 400 {object} infra.bodyObject "{"code":7,"msg":"xxxxxx失败"}"
// @Router /orderManage/driverReplaceRule/{id} [put]
func (manage *OrderManage) PutOrder(id int) x.Result {
var req vo.PutOrderReq
if err := manage.Request.ReadJSON(&req, true); err != nil {
return &infra.JSONResponse{Error: err}
}
if err := manage.OrderManageSev.ModifyOrder(id, manage.Request.GetAdmin(), req); err != nil {
return &infra.JSONResponse{Error: err}
}
return &infra.JSONResponse{}
}
说明:
@Summary: 概括
@Description:详细描述
@Tags:标签,可以进行页面折叠
@Param: 可以接受多种参数形式,比如上面这种