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

相关推荐
必胜刻3 小时前
一个异步生成游戏功能的落地复盘:Redis Stream + WebSocket + 状态补偿
redis·websocket·golang·gin·状态补偿
TE-茶叶蛋1 天前
B-tree vs GIN Trigram vs HNSW
gin
曾几何时`3 天前
Go(一)Gin框架 和 GORM机制
开发语言·golang·gin
老毛肚4 天前
Gin + GORM 接口可视化测试
gin
lolo大魔王4 天前
Gin 框架中间件超详细实战教程(原理、全局中间件、路由中间件、自定义中间件、跨域、日志拦截)
中间件·gin
lolo大魔王4 天前
Gin 框架响应格式与 HTML 模板渲染完整实战教程
前端·html·gin
必胜刻13 天前
Go 调用Coze工作流实现 AI 游戏生成
开发语言·ai·golang·gin
比特森林探险记15 天前
context 在 gRPC / Gin / K8s 中的实战
容器·kubernetes·gin
GoFly开发者16 天前
好消息!Gin+GORM-Gen开发框架已集成完成,正在进行测试和编写使用文档中,需要的开发朋友可以等待使用及订阅哦
gin·gorm·gorm-gen
Soonyang Zhang17 天前
nccl分析(三)——GPU-Initiated Networking(gin)数据发送过程分析
gin·nccl