在Ubuntu系统中调试Swagger(现主要为OpenAPI规范),核心是通过本地工具链(如Swagger Editor/UI、Docker)或**集成开发环境(IDE)**验证API文档的正确性、测试接口响应,并排查配置或代码问题。以下是具体步骤及技巧:
调试Swagger前需安装以下工具:
sudo apt update
sudo apt install -y nodejs npm
安装后验证版本:node -v(需≥14.x)、npm -v(需≥6.x)。sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
Swagger Editor是可视化编辑与调试OpenAPI规范的工具,支持实时验证语法、预览文档。
sudo npm install -g swagger-editor
wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v3.16.1.tar.gz
tar -xvf v3.16.1.tar.gz
cd swagger-editor-3.16.1
swagger-editor
npm install
npm start
http://localhost:3000打开编辑器。swagger.yaml或swagger.json文件。Swagger UI是展示API文档并测试接口的工具,支持“Explore”本地/远程规范文件。
sudo npm install -g swagger-ui
docker pull swaggerapi/swagger-ui
docker run -d -p 8080:8080 -v /path/to/swagger.yaml:/usr/src/app/swagger.yaml swaggerapi/swagger-ui
(/path/to/swagger.yaml替换为本地规范文件路径)swagger-ui
默认在http://localhost:8080启动。http://localhost:8080访问。http://localhost:3000/swagger.yaml,若Editor与UI在同一机器)或本地路径,点击“Explore”。userId=1),点击“Execute”,查看响应结果(包括状态码、响应体、耗时)。若需调试Swagger生成的代码(如Spring Boot项目中的Controller层),可使用Visual Studio Code(VS Code):
launch.json文件(点击左侧“Run and Debug”→“create a launch.json file”),添加以下配置(以Node.js项目为例):{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"skipFiles": ["<node_internals>/**"]
}
]
}
wwwroot/swagger-ui目录下创建custom.js,编写自定义函数(如自动授权):function authorizeSwagger() {
const token = localStorage.getItem('token');
if (token) {
window.swaggerUi.api.clientAuthorizations.add('Bearer', new SwaggerClient.ApiKeyAuthorization('Authorization', 'Bearer ' + token, 'header'));
}
}
通过InjectJavascript机制将脚本注入Swagger UI中间件,实现自动授权。http://localhost:8080无法打开),检查防火墙设置:sudo ufw status
sudo ufw allow 8080/tcp
result.log),定位错误原因(如端口冲突、依赖缺失)。通过以上步骤,可在Ubuntu系统中完成Swagger的调试,覆盖从规范编辑、接口测试到代码级排查的全流程。若遇到具体问题,建议参考Swagger官方文档或社区论坛(如Stack Overflow)获取进一步帮助。