告别丑陋的 Swagger UI,Coco 给你的 Go API 换上优雅新衣
Hello,大家好,这里是小nuo😎。
小nuo在实习的时候发现,Java 中有 Knief4j 渲染 Swagger 方便 Javaer 调试和提供接口给到前端或者测试等人。但是我在使用 Go 的时候发现没有一款让我满意的,所以自己开发了一个。
先看效果 ✨


现代化、优雅、流畅 - 这才是你 Go 应用程序的 API 文档应有的样子
你是否也遇到过这些问题?
通过 swaggo 或者 huma 写完 Go API 后:
- 😫 Swagger UI 界面丑陋,用户体验差
- 🤯 如果要自己弄界面,又需要额外部署前端服务,麻烦
- 😤 如果用 Postman 或者 Apifox 文档和代码分离,维护困难
是时候换一个方案了!
认识 Coco 🥥
Coco 是一个专为 Go 开发者打造的 OpenAPI 文档渲染器,让 API 文档变得优雅且易用。
核心亮点 🌟
- ⚡ 快速上手 - 三行代码完成集成
- 🔌 全框架可用 - 支持 Gin、Echo、Fiber、Chi、net/http 等所有框架
- 🎨 颜值即正义 - Vue 3 + TailwindCSS 精心打磨的界面
- 🧪 内置测试 - 无需 Postman,文档里直接测试 API
- 🌓 主题切换 - 深色浅色主题,随心选择
- 🚀 零依赖集成 - 纯 Go 实现,前端完全内嵌到二进制
- 🌍 多语言 - 内置中英文,可扩展
- 📝 请求历史 - 自动保存测试记录
对比一下
| 特性 | Swagger UI | ReDoc | Coco |
|---|---|---|---|
| 界面美观度 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Go 集成难度 | 中 | 中 | 超简单 |
| 依赖项 | 需要前端资源 | 需要前端资源 | 零依赖 |
| API 测试 | ✅ | ❌ | ✅ |
| 主题切换 | ❌ | ✅ | ✅ |
| 请求历史 | ❌ | ❌ | ✅ |
| 部署方式 | 需要额外部署 | 需要额外部署 | 单二进制 |
快速上手 ⚡
安装
▼bash复制代码go get github.com/leehainuo/coco
基础使用
只需三行代码!
▼go复制代码import "github.com/leehainuo/coco" // 挂载文档路由 mux.Handle("/docs/", coco.New("./openapi.json"))
启动服务,访问 http://localhost:8000/docs/ 就能看到漂亮的文档了!
与 Gin 集成
▼go复制代码package main import ( "github.com/gin-gonic/gin" "github.com/leehainuo/coco" ) func main() { r := gin.Default() // 你的 API 路由 r.GET("/api/users", getUsers) r.POST("/api/users", createUser) // 挂载 Coco 文档 r.Any("/docs/*any", gin.WrapH(coco.New("./docs/swagger.json", coco.Title("我的 API 文档"), coco.Lang("zh"), coco.Theme("auto"), ))) r.Run(":8000") }
配置选项
▼go复制代码coco.New("./openapi.json", coco.Title("自定义标题"), // 文档标题 coco.Theme("dark"), // 主题:light/dark/auto coco.Lang("zh"), // 语言:en/zh coco.EnableDebug(true), // 启用调试面板 coco.EnableExport(true), // 启用导出功能 coco.EnableHistory(true), // 启用请求历史 )
从远程 URL 加载
▼go复制代码coco.New("", coco.SpecURL("https://api.example.com/openapi.json"))
与 Swag 配合使用
▼bash复制代码# 1. 使用 swag 生成文档 swag init # 2. 使用 Coco 渲染 coco.New("./docs/swagger.json")
支持的框架
✅ net/http - Go 标准库
✅ Gin - 最流行的 Web 框架
✅ Echo - 高性能框架
✅ Fiber - Express 风格的框架
✅ Chi - 轻量级路由器
✅ 以及任何兼容 http.Handler 的框架
完整示例见:GitHub - examples
实际效果
📱 响应式设计
完美支持移动端、平板、桌面端
🧪 API 测试面板
直接在文档中测试接口,支持:
- 请求参数填写
- 请求头自定义
- 实时响应预览
- JSON 格式化显示
📝 请求历史
自动保存所有测试记录,方便回溯和复用
🌓 智能主题
- 亮色模式 - 清爽舒适
- 暗色模式 - 保护视力
- 自动模式 - 跟随系统
🌍 国际化
内置中英文支持,用户可随时切换
项目信息
- GitHub: https://github.com/leehainuo/coco
- 文档: https://github.com/leehainuo/coco#readme
- 示例: https://github.com/leehainuo/coco/tree/main/example
- License: MIT
快速链接
加入 Coco! 🎉
Coco 是一个开源项目,小nuo欢迎任何形式的贡献!
小nuo还是一个学生,经验还是不足,Coco 肯定存在很多的不足。Coco 很需要各位佬佬和童鞋们的帮助!!!才能变的更好 💕
你可以:
- 🌟 给个 Star - 这是对小nuo和各位贡献者最大的鼓励
- 🐛 报告 Bug - 帮助我们发现问题
- 📝 改进文档 - 让文档更清晰易懂
- 🌍 添加翻译 - 支持更多语言
- 💻 贡献代码 - 实现新功能或修复问题
- 📢 分享推荐 - 让更多人知道 Coco
贡献指南
查看 CONTRIBUTING.md 了解如何参与贡献。
社区
- GitHub Issues: 提问题、提需求
- GitHub Discussions: 技术讨论、分享经验
- Star & Watch: 及时获取更新
结语
如果你厌倦了 Swagger UI 的老旧界面,如果你想要更优雅的 API 文档体验,那就试试 Coco 吧!
三行代码,优雅文档,就是这么简单! 🥥
觉得有用?请给小nuo一个 Star!⭐
发现问题?欢迎提 Issue!成为贡献者!🐛
