调试Swagger接口前,需先安装Node.js和npm(Swagger Editor/UI的运行依赖)。打开终端,执行以下命令:
sudo apt update
sudo apt install -y nodejs npm
安装完成后,通过node -v和npm -v验证是否安装成功(如显示版本号则表示成功)。
Swagger Editor是可视化编辑Swagger规范的工具,适合开发阶段调整接口定义。
npm install -g swagger-editor
安装完成后,直接运行swagger-editor命令,会自动在浏览器中打开http://localhost:9000(默认端口)。npm install安装依赖,再用http-server启动: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
npm install
npm install -g http-server
http-server -p 8080
访问http://localhost:8080即可使用。Swagger UI是接口调试的主要界面,支持“Try it out”功能(直接发送请求测试)。
npm install -g swagger-ui-express
创建一个简单的Express应用(如app.js),加载Swagger规范文件(swagger.yaml或swagger.json):const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs'); // 需安装:npm install yamljs
const app = express();
const port = 3000;
// 加载Swagger规范文件(需提前创建)
const swaggerDocument = YAML.load('./swagger.yaml');
// 挂载Swagger UI中间件
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
app.listen(port, () => {
console.log(`Swagger UI运行在:http://localhost:${port}/api-docs`);
});
运行node app.js,访问http://localhost:3000/api-docs即可进入调试界面。sudo apt install -y docker.io
docker pull swaggerapi/swagger-ui
docker run -p 8080:8080 -e SWAGGER_FILE=/app/swagger.yaml -v $(pwd)/swagger.yaml:/app/swagger.yaml swaggerapi/swagger-ui
访问http://localhost:8080即可使用(需将swagger.yaml放在当前目录)。Swagger UI需要Swagger YAML/JSON文件来定义接口(如路径、参数、响应)。可通过以下方式获取:
swagger.yaml(推荐,结构清晰)。@ApiOperation)或工具(如swagger-codegen)自动生成。swagger.yaml文件。启动Swagger UI后,进入http://localhost:3000/api-docs(或Docker部署的地址),界面会自动加载swagger.yaml中的接口定义。调试步骤如下:
/user/getInfo)。userId、token等),支持多种数据类型(字符串、数字、数组等)。@CrossOrigin注解),或在Swagger UI中配置requestInterceptor允许跨域。Bearer xxxxx),点击“Authorize”即可。swagger.yaml文件路径正确,若使用相对路径,需确认文件位置与项目目录一致。swagger.yaml文件(点击“Import”→“Link”→输入swagger.yaml地址),进行更灵活的请求测试。launch.json配置文件(如Node.js的inspect-brk模式),启动调试模式,结合Swagger UI发送请求,查看后端变量和执行流程。通过以上步骤,即可在Ubuntu上完成Swagger接口的调试。若遇到问题,可参考Swagger官方文档或社区论坛(如Stack Overflow)寻求帮助。