在 Debian 上部署或使用 Swagger(Swagger UI / Swagger Editor / Swagger Codegen / OpenAPI 工具) 时,常见的“坑”主要集中在 系统依赖、版本差异、权限与安全策略、网络问题 上。下面按场景给你总结一下:
Debian 稳定版(如 Debian 11/12)自带仓库里的 node 和 npm 版本往往偏老:
SyntaxError: Unexpected tokenERR_OSSL_EVP_UNSUPPORTED✅ 解决方案:
# 用 NodeSource
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install -y nodejs
Swagger Codegen(尤其是 v2 / v3)依赖 Java:
java: command not found✅ 解决:
apt install -y default-jdk
Debian 仓库里的 swagger-ui 包 严重过时,不支持 OpenAPI 3.x。
❌ 不建议:
apt install swagger-ui
✅ 推荐:
Swagger UI 本身只是前端,访问后端 API 时:
✅ nginx 示例:
add_header Access-Control-Allow-Origin *;
Swagger UI 默认 不能用 file:// 打开 json
✅ 正确方式:
python3 -m http.server
Debian + Docker 时:
docker run -p 8080:8080 swaggerapi/swagger-editor
但:
✅ 检查:
ufw status
Swagger Editor:
✅ 解决:
存在两个:
swagger-codegen(OpenAPI 2)openapi-generator(OpenAPI 3)混用会:
✅ 建议直接用:
openapi-generator-cli
Debian 下:
/usr/local/bin 写不进✅ 示例:
chmod +x openapi-generator-cli.jar
Debian 服务器直接暴露:
/swagger-ui.html/v2/api-docs= 接口全泄露
✅ 建议:
| 问题 | 现象 |
|---|---|
| apt 版本旧 | OpenAPI 3 不支持 |
| systemd 权限 | 服务起不来 |
| ufw | 端口不通 |
| SELinux(少见) | 访问被拒 |
| 中文 YAML | 编码乱码 |
如果你能告诉我:
我可以直接给你一份可落地的 Debian 部署方案,避免踩坑。