gin配置swagger文档

news/2024/9/22 14:39:39/

一、基本准备工作

  • 1、安装依赖包

    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的路由文件

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

    swag init
    

二、swagger文档的书写

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

    // @title 测试项目
    // @version 1.0 版本
    // @description 简单测试案例 描述
    // @BasePath /api/admin/v1  基础路径
    // @query.collection.format multi
    func main() {//2.初始化路由router := initialize.Routers()// 配置swaggerdocs.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提交参数的控制层

    // 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")
    }
    

    在这里插入图片描述

    自定义结构体

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

    // 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 mepanic("implement me")
    }
    

在这里插入图片描述

  • 5、get请求分页获取数据

    // 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

在这里插入图片描述


http://www.ppmy.cn/news/1528855.html

相关文章

Spark SQL性能优化高频面试题及答案

目录 高频面试题及答案1. 如何通过分区(Partitioning)优化Spark SQL查询性能?2. 什么是数据倾斜(Data Skew)?如何优化?3. 如何使用广播(Broadcast)优化Join操作?4. 如何优化Spark SQL的Shuffle操作?5. 如何通过缓存(Cache)优化Spark SQL的性能?6. 如何使用合适的…

网络丢包定位记录(二)

网卡驱动丢包 查看:ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量,还包括too-long-frames错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。 …

python qt5 常用

QT5中如何设置让窗口根据屏幕比例显示设置? desktop QDesktopWidget().screenGeometry() self.resize(int(desktop.width() * 0.3), int(desktop.height()*0.5)) QT5中关于背景穿透问题的处理方式? 场景如下:我们在开发的时候&#xff0c…

无人机集群路径规划:麻雀搜索算法(Sparrow Search Algorithm, SSA)​求解无人机集群路径规划,提供MATLAB代码

一、单个无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化…

MAC 安装 nvm

在Mac上安装NVM(Node Version Manager)可以通过多种方法实现,以下是两种常用的安装方法: 方法一:使用Homebrew安装(推荐) Homebrew是macOS的包管理器,通过它可以方便地安装和管理各…

【STM32 笔记】STlink/v2中SWD模式连线方式

STlink/v2中SWD模式连线方式 STlink/v2中SWD模式连线方式

k8s pod网络故障注入,命令行实现

工具介绍 crictl工具&#xff1a;用于查询k8s pod和容器信息nsenter工具&#xff1a;用于进入容器的网络命名空间tc工具&#xff1a;注入网络故障 实现k8s pod级别网络故障 首先查找故障注入的pod的宿主机&#xff0c;并ssh登陆进去 kubectl get pod -n <namespace> …

通信工程学习:什么是VLAN虚拟局域网

VLAN&#xff1a;虚拟局域网 VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种将物理局域网在逻辑上划分成多个广播域的通信技术。以下是关于VLAN的详细解释&#xff1a; 一、VLAN虚拟局域网的定义与概述 VLAN通过逻辑方式将网络中的设备…