温馨提示×

debian swagger怎么调试

小樊
39
2026-09-16 21:10:16
栏目: 智能运维

在 Debian 上“调试 Swagger”通常分几种场景:你是本地起 Swagger UI / Editor,还是调试后端接口文档(Springfox、springdoc、FastAPI 等),还是Swagger 请求后端时报错。下面按常见情况给你一套实用排查思路。


一、Debian 上运行 Swagger UI(前端)

1. 用 Docker 跑 Swagger UI(最省事)

docker run -p 8080:8080 swaggerapi/swagger-ui

浏览器访问:

http://<debian_ip>:8080

2. 用 Node 本地跑

sudo apt update
sudo apt install nodejs npm -y
npx serve swagger-ui-dist

3. 常见前端问题

  • 页面打不开
    • 看端口是否监听:ss -lntp | grep 8080
    • 防火墙:sudo ufw allow 8080
  • Swagger JSON 加载失败
    • 浏览器 F12 → Network → 看 /v2/api-docs 或 /v3/api-docs 返回什么

二、调试后端 Swagger 接口(最常见)

Spring Boot(springdoc / springfox)

springdoc-openapi(推荐)

依赖:

<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

常见问题:

  • 404 → 路径被 Spring Security 拦了
  • 空白页 → 看浏览器 Console 是否 CORS 报错

FastAPI(Python)

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

三、Swagger 请求后端报错怎么查

1. CORS 问题(非常常见)

浏览器报错:

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("*");
      }
    };
  }
}

2. 反向代理(Nginx)导致 Swagger 打不开

Nginx 示例:

location /swagger-ui/ {
    proxy_pass http://127.0.0.1:8080/;
}

注意:

  • /v3/api-docs 也要能访问
  • WebSocket 不需要,但静态资源要放行

四、推荐调试工具组合

  • 浏览器 F12(Network + Console)
  • curl 验证接口
  • Postman(对照 Swagger)
  • journalctl / docker logs

如果你能具体说一下:

  • 用的是 Swagger UI / Editor / Codegen
  • 后端是 Java / Python / Go
  • 报错信息或现象

我可以直接帮你定位。

0 踩