Swagger+iris使用记录

参考链接: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.goswagger.jsonswagger.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: 可以接受多种参数形式,比如上面这种