文档:Redoc架构及应用场景
1.Redoc 简介
Redoc是一个开源的OpenAPI/Swagger 文档生成器,专注于美观的 API 文档渲染。
2.核心架构
┌─────────────────────────────────────────────────────
│ OpenAPI/Swagger Spec
│ (YAML / JSON 格式)
└──────────────────────┬──────────────────────────────
│
▼
┌─────────────────────────────────────────────────────
│ Redoc CLI / Build
│ • redoc-cli build spec.yaml --output index.html
│ • npm/yarn 打包为静态资源
└──────────────────────┬──────────────────────────────
│
▼
┌─────────────────────────────────────────────────────
│ 单页 HTML 输出
│ • 自包含 HTML + CSS + JS
│ • 无需后端服务,可直接部署到 CDN/Nginx
└──────────────────────┬──────────────────────────────
│
▼
┌─────────────────────────────────────────────────────
│ 浏览器端渲染引擎
│ • React + Web Components
│ • 左侧导航 + 右侧内容区
│ • 主题定制(CSS 变量)
│ • 搜索/筛选功能
└─────────────────────────────────────────────────────
3.核心特性对比
| 特性 | Redoc | SwaggerUI |
|---|---|---|
| 渲染风格 | 单页滚动式,层次清晰 | 标签页式,可在线测试 |
| 性能 | 轻量,加载快 | 较重型 |
| 在线调试 | ❌ 不支持 | ✅ 支持 |
| 自定义主题 | ✅ CSS 变量 | ⚠️ 有限 |
| 侧边栏导航 | ✅ 支持 | ✅ 支持 |
| OpenAPI 3.x | ✅ 完整支持 | ✅ 完整支持 |
| 部署方式 | 静态文件 / Docker / CDN | 静态文件 / Docker |
4.典型应用场景
1. API 文档平台(最常见)
1 | # docker-compose.yml 示例 |
2. 企业内部 API 网关文档
- 与 Kong/APISIX 集成,自动生成文档页
- 支持多版本管理(v1/v2/v3 并行展示)
3. 交付给第三方开发者
- 生成美观的静态 HTML,嵌入到开发者门户
- 支持 JWT/OAuth 认证后再访问文档
4. 离线/内网环境
- 构建为单个 HTML 文件,内网直接分发
- 无需联网,适合安全要求高的场景
5. CI/CD 自动更新
1 | # GitHub Actions 示例 |
5.与相关工具对比
| 工具 | 定位 | 适用场景 |
|---|---|---|
| Redoc | 文档渲染 | 注重美观、静态展示 |
| SwaggerUI | 文档+调试 | 需要在线测试接口 |
| Postman | 调试+协作 | 团队协作、复杂接口测试 |
| Stoplight | 设计驱动 | API 设计阶段协同 |
| API Platform (ReadMe) | 完整平台 | 商业 SaaS 文档服务 |
6.推荐架构模式
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ API 服务 │────▶│ OpenAPI 规范 │────▶│ Redoc 渲染 │
│ (Spring/Go) │ │ 自动导出 │ │ 静态页面 │
└─────────────┘ └─────────────┘ └──────┬──────┘
│
▼
┌─────────────┐
│ Nginx/CDN │
│ 全球加速 │
└─────────────┘