gin配置swagger文档

一、基本准备工作

  • 1、安装依赖包

    protobuf 复制代码
    go get -u github.com/swaggo/swag/cmd/swag
    go get -u github.com/swaggo/gin-swagger
    go get -u github.com/swaggo/files
  • 2、在根目录上配置swagger的路由文件

    go 复制代码
      //2.初始化路由
      router := initialize.Routers()
      // 配置swagger
      docs.SwaggerInfo.BasePath = ""
      router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  • 3、使用命令生成swagger文件

    shell 复制代码
    swag init

二、swagger文档的书写

  • 1、在main中全局配置项目说明

    go 复制代码
    // @title 测试项目
    // @version 1.0 版本
    // @description 简单测试案例 描述
    // @BasePath /api/admin/v1  基础路径
    // @query.collection.format multi
    func main() {
        //2.初始化路由
        router := initialize.Routers()
        // 配置swagger
        docs.SwaggerInfo.BasePath = ""
        router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    	// 访问地址:http://localhost:9000/swagger/index.html
        // 获取端口号
        const PORT = "9000"
        fmt.Println(PORT + "当前端口")
        fmt.Println(fmt.Sprintf("服务已经启动:localhost:%s", PORT))
        if err := router.Run(fmt.Sprintf(":%s", PORT)); err != nil {
            fmt.Println(fmt.Sprintf("服务启动失败:%s", err.Error()))
        }
    }
  • 2、对于post提交参数的控制层

    go 复制代码
    // CreateAccountApi
    // @Summary 创建用户
    // @Tags 用户模块
    // @Param accountDto body dto.AccountDto true "入参"
    // @Success 200 string json{"code":"200","data":"","msg":"ok"}
    // @Router /api/v1/admin/account [post]
    func (a Account) CreateAccountApi(ctx *gin.Context) {
    	panic("implement me")
    }

    自定义结构体

    go 复制代码
    type AccountDto struct {
    	UserName string `json:"userName" binding:"required"` // 用户名
    	Password string `json:"password" binding:"required"` // 密码
    }
  • 4、根据id删除数据

    go 复制代码
    // DeleteAccountByIdApi
    // @Summary 根据id删除账号
    // @Tags 用户模块
    // @Param id path int true "id"
    // @Success 200 string json{"code":"200","data":"","msg":"ok"}
    // @Router /api/v1/admin/account [delete]
    func (a Account) DeleteAccountByIdApi(ctx *gin.Context) {
    	//TODO implement me
    	panic("implement me")
    }
  • 5、get请求分页获取数据

    go 复制代码
    // GetAccountPageApi
    // @Summary 分页获取用户
    // @Tags 用户模块
    // @Param pageNumber query int true "pageNumber"
    // @Param pageSize query int true "pageSize"
    // @Success 200 {object} vo.AccountVo
    // @Router /api/v1/admin/account [get]
    func (a Account) GetAccountPageApi(ctx *gin.Context) {
    	utils.Success(ctx, vo.AccountVo{
    		Id:       1,
    		UserName: "李四",
    		Age:      10,
    	})
    	return
    }

三、将生成的swagger文件导入到apifox

相关推荐
桃园码工12 小时前
2-Gin 框架中的路由 --[Gin 框架入门精讲与实战案例]
gin·路由·实战案例
海绵波波10712 小时前
Gin-vue-admin(2):项目初始化
vue.js·golang·gin
海绵波波10712 小时前
Gin-vue-admin(4):项目创建前端一级页面和二级页面
前端·vue.js·gin
程序猿-瑞瑞2 天前
23 go语言(golang) - gin框架安装及使用(四)
开发语言·golang·gin
zyh_0305213 天前
GIN
开发语言·后端·golang·gin
海绵波波1073 天前
Gin-vue-admin(1):环境配置和安装
前端·vue.js·gin
程序猿-瑞瑞4 天前
22 go语言(golang) - gin框架安装及使用(三)
开发语言·golang·gin
Xvens4 天前
Golang Gin Redis+Mysql 同步查询更新删除操作(我的小GO笔记)
redis·golang·gin
ifanatic4 天前
[每周一更]-(第127期):Go新项目-Gin中使用超时中间件实战(11)
中间件·golang·gin
免檒5 天前
基于base64Captcha实现验证码功能
开发语言·后端·中间件·gin