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

gin集成Swagger

gin集成Swagger

1、首先安装 swag 命令行工具:

go install github.com/swaggo/swag/cmd/swag@latest

2、添加 Swagger 相关依赖到项目:

go get -u github.com/swaggo/swag/cmd/swag
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

3、在 main.go 中添加基础配置:

package main

import (
    _ "xxx-api/docs"  // 这里会引入即将自动生成的 docs 包
)

// @title           xxx API
// @version         1.0
// @description     xxx统 API 服务
// @termsOfService  http://swagger.io/terms/

// @contact.name   API Support
// @contact.url    http://www.swagger.io/support
// @contact.email  support@swagger.io

// @license.name  Apache 2.0
// @license.url   http://www.apache.org/licenses/LICENSE-2.0.html

// @host      localhost:8080
// @BasePath  /api

// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Authorization
func main() {
    // ... 现有代码 ...
}

4、修改 routers/router.go,添加 Swagger 路由:

package routers

import (
    "github.com/gin-gonic/gin"
    swaggerFiles "github.com/swaggo/files"
    ginSwagger "github.com/swaggo/gin-swagger"
)

func InitRouter(engine *gin.Engine) {
    // ... 现有代码 ...

    // Swagger API 文档
    // 仅在开发环境启用
    if gin.Mode() != gin.ReleaseMode {
        engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    }
}

5、创建一个初始化 Swagger 的脚本 scripts/swagger.sh:

#!/bin/bash

# 生成 swagger 文档
swag init

# 如果文档生成成功,打印访问地址
if [ $? -eq 0 ]; then
    echo "Swagger 文档生成成功!"
    echo "请访问: http://localhost:8080/swagger/index.html"
else
    echo "Swagger 文档生成失败!"
fi

http://www.kler.cn/a/466141.html

相关文章:

  • 【Vue】分享一个快速入门的前端框架以及如何搭建
  • 「Java 数据结构全面解读」:从基础到进阶的实战指南
  • 百度Android最新150道面试题及参考答案 (中)
  • 《learn_the_architecture_-_aarch64_exception_model》学习笔记
  • QML自定义进度条和单选按钮的样式
  • Wend看源码-Java-fork/Join并行执行任务框架学习
  • DjangoORM字段参数、常用字段类型及参数、模型和表单验证器详解
  • 三格电子新品上市——IEC103 转 ModbusTCP 网关
  • Redis - 7 ( 11000 字 Redis 入门级教程 )
  • springBoot集成netty中登录鉴权、在pieline消息传递
  • df.groupby(pd.Grouper(level=1)).sum()
  • 解决 `pnpm install` 出现 `ERR_PNPM_ENOENT` 错误的方法
  • 【前端】掌握 JavaScript Map:从入门到精通
  • “善弈者”也需妙手,Oclean欧可林:差异化不是说说而已
  • 适用于小白的程序报错提问 AI 模板
  • scala概念
  • Linux实验报告14-Linux内存管理实验
  • Cpp::哈希表的两种模拟实现方式(27)
  • 肉鸽游戏的魅力
  • 1.2[hardware][day2]
  • 2025考研江南大学复试科目控制综合(初试807自动控制原理)
  • ArcgisServer过了元旦忽然用不了了?许可过期
  • RS485方向自动控制电路分享
  • 【Ubuntu20.04】Apollo10.0 Docker容器部署+常见错误解决
  • 景区自助售卡机与定点酒店的合作双赢之策-景区酒店方案
  • kafka怎么保证顺序消费?