温馨提示×

linux swagger怎么调试

小樊
51
2026-09-21 20:25:07
栏目: 智能运维

在 Linux 下调试 Swagger(OpenAPI),通常分为几种场景:调试 Swagger UI、调试 后端接口、以及调试 Swagger 文档生成。下面按常见情况给你一套实用方法。


一、确认你在“调试什么”

先明确是哪一种:

  1. Swagger UI 打不开 / 显示异常
  2. 接口能通,但 Swagger 文档不对
  3. Swagger 生成的 JSON/YAML 有问题
  4. 本地调用接口调试(类似 Postman)

二、Swagger UI 调试(最常见)

1. 确认 Swagger UI 能访问

假设你是 Spring Boot:

curl http://localhost:8080/swagger-ui.html

或 OpenAPI 3:

curl http://localhost:8080/swagger-ui/index.html

如果返回 404:

  • 检查依赖
  • 检查路径映射
  • 检查 Spring Security 是否拦截

2. 查看 Swagger JSON

Swagger UI 本质只是渲染 JSON:

curl http://localhost:8080/v2/api-docs
# 或
curl http://localhost:8080/v3/api-docs

如果能看到 JSON,说明后端 OK,问题在 UI。


3. 查看后端日志

Linux 下实时看日志:

tail -f logs/app.log

重点看:

  • Mapping 扫描不到 Controller
  • Bean 创建失败
  • Security 拦截

三、接口级调试(推荐)

1. 用 curl 直接打接口

不依赖 Swagger UI:

curl -X GET "http://localhost:8080/api/user/1" \
  -H "Authorization: Bearer xxx"

2. 用 httpie(更友好)

pip install httpie
http GET http://localhost:8080/api/user/1

四、Swagger 文档内容不对(注解问题)

Spring Boot 示例

@Operation(summary = "获取用户")
@GetMapping("/user/{id}")
public User getUser(@Parameter(description="用户ID") @PathVariable Long id)

常见问题:

  • 忘了加 @RestController
  • 方法被 @Hidden 隐藏
  • DTO 没加 @Schema

五、Swagger 与 Linux 环境相关问题

1. 端口不通

netstat -tunlp | grep 8080
# 或
ss -tunlp | grep 8080

2. 防火墙

iptables -L
# 或
ufw status

3. 容器环境

如果是 Docker:

docker logs 容器名
docker exec -it 容器名 sh
curl localhost:8080/v3/api-docs

六、Swagger 编辑器(写文档调试)

Linux 可直接用:

docker run -p 8081:8080 swaggerapi/swagger-editor

浏览器打开:

http://localhost:8081

七、快速排查清单 ✅

  • [ ] 能访问 /v3/api-docs
  • [ ] Swagger UI 路径正确
  • [ ] 后端日志无报错
  • [ ] 接口用 curl 能通
  • [ ] 注解写对(Controller / DTO)

如果你愿意,可以告诉我:

  • 用的是 Spring Boot / Node / Python / Go
  • Swagger 版本(2.x / 3.x)
  • 具体报错信息

我可以直接帮你定位。

0 踩