🔥 受不了 Swagger UI 的丑,我自己撸了一个!
各位 Gopher 好!
作为一个 Go 开发者,每次打开 Swagger UI 都想吐槽:
- 界面丑得像上个世纪的产物 😅
- 调试个接口还得开 Postman,来回切换烦死了
- 每次都要手动复制 Token 粘贴,重复劳动
- 想换个主题?不存在的
忍无可忍,我决定自己造一个!
于是 青峰Swag 诞生了 ⚡
📸 先看效果
🎯 解决了什么痛点?
| 痛点 | 青峰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,我会积极维护的 💪