在 Debian 上“调试 Swagger”通常分几种场景:你是本地起 Swagger UI / Editor,还是调试后端接口文档(Springfox、springdoc、FastAPI 等),还是Swagger 请求后端时报错。下面按常见情况给你一套实用排查思路。
docker run -p 8080:8080 swaggerapi/swagger-ui
浏览器访问:
http://<debian_ip>:8080
sudo apt update
sudo apt install nodejs npm -y
npx serve swagger-ui-dist
ss -lntp | grep 8080sudo ufw allow 8080/v2/api-docs 或 /v3/api-docs 返回什么依赖:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.3.0</version>
</dependency>
访问:
http://localhost:8080/swagger-ui.html
http://localhost:8080/v3/api-docs
# 直接看 JSON
curl http://localhost:8080/v3/api-docs
# 看后端日志
journalctl -u your-spring-app -f
常见问题:
pip install fastapi uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/items")
def read_items():
return [{"id": 1}]
uvicorn main:app --host 0.0.0.0 --port 8000
访问:
http://<debian_ip>:8000/docs
调试:
curl http://localhost:8000/openapi.json
浏览器报错:
Access to fetch blocked by CORS
解决(Spring Boot 示例):
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer cors() {
return new WebMvcConfigurer() {
public void addCorsMappings(CorsRegistry r) {
r.addMapping("/**").allowedOriginPatterns("*");
}
};
}
}
Nginx 示例:
location /swagger-ui/ {
proxy_pass http://127.0.0.1:8080/;
}
注意:
/v3/api-docs 也要能访问curl 验证接口journalctl / docker logs如果你能具体说一下:
我可以直接帮你定位。