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

相关推荐
ZHENGZJM6 小时前
Server-Sent Events (SSE) 接口实现
架构·go·gin
ZHENGZJM6 小时前
统一响应封装与 API 错误处理
react.js·go·gin
ZHENGZJM7 小时前
仓库抓取与内容提取
go·gin
GDAL2 天前
gin.H 深入全面讲解
gin·h
呆萌很2 天前
【Gin】参数处理练习题
gin
GDAL2 天前
gin.Default() 深入全面讲解
golang·go·gin
GDAL3 天前
为什么选择gin?
golang·gin
ZHENGZJM7 天前
Gin 鉴权中间件设计与实现
中间件·gin
ZHENGZJM7 天前
认证增强:图形验证码、邮箱验证与账户安全
安全·react.js·go·gin
女王大人万岁8 天前
Golang实战gin-swagger:自动生成API文档
服务器·开发语言·后端·golang·gin