在 Linux 上部署 Swagger 其实不算难,难度主要取决于你用的是哪种“Swagger”以及你的项目类型。下面我按常见场景给你拆解一下,看完你基本就能判断自己该怎么做。
很多人说的「部署 Swagger」其实是指下面几种之一:
| 场景 | 实际含义 |
|---|---|
| Swagger UI | 用来查看、调试接口 |
| Swagger Editor | 在线编辑 OpenAPI 文档 |
| Swagger + 后端项目 | 把接口文档自动生成并展示 |
| Swagger 作为静态文档 | 纯 HTML 文档服务 |
最常见的是:Swagger UI + 后端接口
适合:
# 下载 Swagger UI
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.17.14.zip
unzip v5.17.14.zip
cd swagger-ui-5.17.14/dist
修改 swagger-initializer.js:
url: "http://你的IP或域名/api-docs.yaml"
然后用 Nginx / 任意 Web 服务:
python3 -m http.server 8080
浏览器访问:
http://服务器IP:8080
✅ 难度:★☆☆☆☆
难度:低
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
访问:
http://IP:端口/swagger-ui.html
✅ 几乎零配置
难度:中
npm install swagger-ui-express swagger-jsdoc
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const spec = swaggerJsdoc({ /* 配置 */ });
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(spec));
✅ 难度:★★☆☆☆
from fastapi import FastAPI
app = FastAPI()
# 自动生成
访问:
http://IP:8000/docs
✅ 难度:★☆☆☆☆
pip install flask-swagger-ui
✅ 难度:★★☆☆☆
难度:低
docker run -p 8080:8080 \
-e SWAGGER_JSON=/api/openapi.json \
-v $(pwd):/usr/share/nginx/html \
swaggerapi/swagger-ui
✅ 适合生产环境
| 问题 | 原因 |
|---|---|
| 页面空白 | JSON 跨域 / 路径错误 |
| 接口调不通 | 后端未放行 CORS |
| 访问 404 | Nginx 没配置静态目录 |
| 文档不更新 | 忘了重新生成 JSON |
Linux 上部署 Swagger 不难,难点不在 Linux,而在接口文档怎么生成。
如果你愿意,可以告诉我:
我可以直接给你 一套可复制的完整部署方案 ✅