🔥 受不了 Swagger UI 的丑,我自己撸了一个!

72 阅读2分钟

🔥 受不了 Swagger UI 的丑,我自己撸了一个!

各位 Gopher 好!

作为一个 Go 开发者,每次打开 Swagger UI 都想吐槽:

  • 界面丑得像上个世纪的产物 😅
  • 调试个接口还得开 Postman,来回切换烦死了
  • 每次都要手动复制 Token 粘贴,重复劳动
  • 想换个主题?不存在的

忍无可忍,我决定自己造一个!

于是 青峰Swag 诞生了 ⚡


📸 先看效果

image.png


🎯 解决了什么痛点?

痛点青峰Swag 的解决方案
UI 丑3 套精心设计的主题 + 6 种主题色 + 深色模式
调试要开 Postman内置在线调试,界面里直接发请求
Token 要手动复制全局 Headers + Token 自动提取,登录一次全局生效
每次要手动 swag init支持启动时自动生成文档

✨ 特性一览

  • 🎨 颜值在线 - Default / Minimal / Modern 三套主题随便切
  • 🌓 深色模式 - 夜间撸码护眼神器
  • 🐛 在线调试 - 告别 Postman,文档里直接测
  • 🔑 全局 Token - 配置一次,所有接口自动带上
  • 🪄 智能提取 - 登录接口返回的 Token 自动设置到全局
  • 🔄 自动生成 - 启动自动 swag init,懒人必备
  • 📦 开箱即用 - embed.FS 内嵌,不用部署前端

🔄 已经在用 gin-swagger?

两行代码无缝切换,原有注释和 docs 目录完全不用动:

// 把这个删掉
// r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

// 换成这个
r.GET("/doc/*any", qingfeng.Handler(qingfeng.Config{
    Title:    "我的 API",
    BasePath: "/doc",
    DocPath:  "./docs/swagger.json",
}))

就这么简单,零侵入


📦 安装使用

go get github.com/wdcbot/qingfeng@latest

完整配置:

r.GET("/doc/*any", qingfeng.Handler(qingfeng.Config{
    Title:        "我的 API",
    Description:  "API 文档",
    Version:      "1.0.0",
    BasePath:     "/doc",
    DocPath:      "./docs/swagger.json",
    EnableDebug:  true,           // 开启在线调试
    DarkMode:     false,          // 深色模式
    UITheme:      qingfeng.ThemeModern,  // 主题风格
    AutoGenerate: true,           // 自动生成文档
}))

🔗 项目地址

GitHub: github.com/wdcbot/qing…


第一次发开源项目,如果觉得有用,求个 Star ⭐ 鼓励一下!

有任何问题或建议欢迎提 Issue,我会积极维护的 💪