当前位置: 首页 > news >正文

gin配置swagger文档

一、基本准备工作

  • 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

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 小叶OJ 2716: 过河问题 ← 贪心算法
  • 电脑怎么恢复原来的ip地址:全面指南与注意事项
  • 编写并运行第一个spark java程序
  • 快速搭建最简单的前端项目vue+View UI Plus
  • 详解“c:/work/src/components/a/b.vue“‘ has no default export报错原因
  • 望繁信科技携流程智能解决方案亮相CNDS 2024新能源产业数智峰会
  • sizeof和strlen的小知识
  • 【在Linux世界中追寻伟大的One Piece】网络命令|验证UDP
  • vue3-print打印eletable某一行的数据
  • Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用(text2sql)
  • GPT对话知识库——串口通信的数据的组成?起始位是高电平还是低电平?如何用代码在 FreeRTOS 中实现串口通信吗?如何处理串口通信中的数据帧校验吗?
  • 【CSS|第1期】网页设计的演变:从表格布局到Grid布局
  • Lombok:Java开发者的代码简化神器【后端 17】
  • CSS3中的@media查询
  • Go websocket
  • 深入了解以太坊
  • C++入门教程(10):for 语句
  • C语言笔记(第一章:C语言编程)
  • Docker下部署自己的LNMP工作环境
  • JavaScript函数式编程(一)
  • Map集合、散列表、红黑树介绍
  • Mysql数据库的条件查询语句
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python中eval与exec的使用及区别
  • Sass 快速入门教程
  • Vue.js源码(2):初探List Rendering
  • 如何设计一个微型分布式架构?
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • kubernetes资源对象--ingress
  • "无招胜有招"nbsp;史上最全的互…
  • ######## golang各章节终篇索引 ########
  • #、%和$符号在OGNL表达式中经常出现
  • #pragma预处理命令
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)Nginx简介和安装教程
  • (1)STL算法之遍历容器
  • (35)远程识别(又称无人机识别)(二)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (二)十分简易快速 自己训练样本 opencv级联lbp分类器 车牌识别
  • (四)c52学习之旅-流水LED灯
  • (五)MySQL的备份及恢复
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • **PHP二维数组遍历时同时赋值
  • **python多态
  • .NET CF命令行调试器MDbg入门(一)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET+WPF 桌面快速启动工具 GeekDesk
  • .Net6 Api Swagger配置
  • .net6使用Sejil可视化日志
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET开源项目介绍及资源推荐:数据持久层
  • .Net中ListT 泛型转成DataTable、DataSet