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

相关推荐
希望20173 天前
Golang | http/server & Gin框架简述
http·golang·gin
朗迹 - 张伟5 天前
Gin-Vue-Admin学习笔记
vue.js·学习·gin
creator_Li5 天前
Gin框架学习
go·gin
kite01218 天前
Gin + Zap 日志:构建高性能、结构化的应用日志系统
golang·gin·log·zap
OxYGC8 天前
[玩转GoLang] 5分钟整合Gin / Gorm框架入门
开发语言·golang·gin
张烫麻辣亮。8 天前
golang-gin包
开发语言·golang·gin
小红帽2.010 天前
GOFLY开源客服系统-处理gin框架下的session中间件
中间件·gin
小红帽2.011 天前
从零搭建客服系统:我是如何用Gin实现页面路由与模板渲染的
gin
戎码江湖12 天前
使用CI/CD部署后端项目(gin)
ci/cd·golang·gin·后端自动部署项目·自动化部署项目
夏沫mds19 天前
【基于hyperledger fabric的教育证书管理系统】
运维·go·vue·区块链·gin·fabric