概念澄清
- CentOS是Linux发行版,与Swagger并无从属关系。很多人把“在CentOS上部署/使用Swagger”简称为“CentOS Swagger”,其实指的是在CentOS环境中安装、配置或集成Swagger相关工具。
- Swagger是一套围绕OpenAPI规范(原Swagger规范)的开源工具生态,用于设计、构建、文档化与使用REST API。
- Swagger UI是Swagger工具集中的一个组件,用于把OpenAPI/Swagger规范(JSON/YAML)渲染成交互式网页文档,便于查看与在线调试接口。
核心区别对比
| 维度 |
CentOS |
Swagger |
Swagger UI |
| 本质 |
操作系统 |
API规范 + 工具生态 |
可视化文档/调试工具 |
| 作用 |
提供运行环境(服务器、包管理、网络等) |
定义API、生成/校验/测试/协作 |
将规范渲染成交互式网页,直接Try it out |
| 产出物 |
系统与服务运行载体 |
规范文件(YAML/JSON)、代码、文档 |
HTML页面(静态资源) |
| 是否可单独“安装” |
是(发行版本体) |
否(规范+多工具集合) |
是(npm包或静态文件) |
| 与谁配合使用 |
与任何语言/框架/工具配合 |
与编辑器、UI、代码生成器、CI/CD配合 |
与后端服务或规范文件配合 |
| 在CentOS上的常见做法 |
部署服务、Nginx/Apache、容器等 |
采用Springfox/SpringDoc等生成规范 |
用Nginx托管静态UI,指向/api-docs |
说明:Swagger生态还包含Swagger Editor(编辑规范)、Swagger Codegen(代码生成)、Swagger Inspector(在线调试/生成规范)等组件,Swagger UI只是其中之一。
在CentOS上的常见用法
- 部署Swagger UI(静态站点方式)
- 下载发布包或克隆仓库,将dist内容放到**/var/www/html/swagger-ui**;
- 用Nginx/Apache托管,访问 http://服务器IP/swagger-ui/index.html;
- 在UI中配置规范URL(如**/api-docs或指向你的openapi.yaml/json**)。
- 在Spring Boot中集成(自动生成规范并提供UI)
- 选择Springfox(如springfox-swagger2/springfox-swagger-ui)或SpringDoc(springdoc-openapi-ui);
- 启动后访问内置UI:常见路径为**/swagger-ui.html或/swagger-ui/index.html**;
- 通过配置类或application.properties控制分组、路径、是否启用等。
- 安全与发布建议
- 仅在dev/test环境开放UI,生产可禁用或加Basic Auth/OAuth2;
- 规范文件与后端实现保持同步,必要时接入CI/CD自动校验与发布。
如何选择
- 需要在服务器上“装什么”的层面:选择CentOS(操作系统)。
- 需要“定义与生成”API文档/代码/测试的层面:选择Swagger(规范与工具生态)。
- 需要“给团队浏览与在线调试”的层面:选择Swagger UI(可视化与交互)。