在 Debian 下使用 Swagger(无论是 Swagger UI、Swagger Editor,还是 Spring Boot / Node / Python 里集成的 Swagger)报错了,需要先看具体报错信息。不过我可以先给你一套通用排查思路,你对照看看是哪一类问题。
不同场景处理方式不一样:
你可以先告诉我用的是哪一种。
现象
EADDRINUSEhttp://localhost:8080/swagger-ui.html解决
# 查看端口占用
sudo netstat -tunlp | grep 8080
# 或用 lsof
sudo lsof -i:8080
# 杀掉占用进程
sudo kill -9 PID
如果是 80 / 443:
sudo setcap cap_net_bind_service=+ep /usr/bin/node
Spring Boot 场景
springdoc-openapispringfox-swagger2❌ 错误示例:
Unable to infer base url
No handler found for swagger-resources
✅ 解决:
<!-- Spring Boot 3 -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
访问:
/swagger-ui/index.html
现象
node: command not found
npm ERR! code EAI_AGAIN
解决
# 安装 node
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
# 检查
node -v
npm -v
现象
Nginx 示例配置
location /swagger-ui/ {
alias /opt/swagger-ui/;
try_files $uri $uri/ /swagger-ui/index.html;
}
现象
Resolver error
Could not resolve reference
解决
# 校验 swagger.yaml
npx @apidevtools/swagger-cli validate swagger.yaml
你可以直接把 报错信息原文 贴出来(越多越好),包括:
cat /etc/os-release)我可以精准定位并给你改法。
如果你愿意,也可以直接说一句:
“我是 Debian + Spring Boot 3,访问 /swagger-ui 报 xxx”
我来对症下药。