在Ubuntu上调试Swagger(现通常指OpenAPI)前,需先安装Node.js和npm(Swagger Editor/UI的依赖环境)。打开终端,执行以下命令:
sudo apt update
sudo apt install -y nodejs npm
安装完成后,通过node -v和npm -v验证安装是否成功(显示版本号即为成功)。
Swagger Editor用于编写、预览和调试Swagger规范文件(swagger.yaml/swagger.json)。
方式一:通过npm全局安装
执行以下命令全局安装Swagger Editor:
sudo npm install -g swagger-editor-cli
安装完成后,启动Editor:
swagger-editor
默认会在http://localhost:9000启动,浏览器访问即可使用。
方式二:使用Docker运行
若不想污染本地环境,可使用Docker快速启动:
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
访问http://localhost:38080即可。
Swagger UI用于可视化测试API接口,需将Swagger规范文件加载到UI中进行调试。
方式一:通过npm全局安装并集成Express
sudo npm install -g swagger-ui-express
mkdir swagger-demo && cd swagger-demo
echo 'const express = require("express");
const swaggerUi = require("swagger-ui-express");
const YAML = require("yamljs");
const app = express();
const swaggerDocument = YAML.load("./swagger.yaml"); // 替换为你的规范文件路径
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerDocument));
const PORT = 3000;
app.listen(PORT, () => console.log(`Swagger UI运行在 http://localhost:${PORT}/api-docs`))' > index.js
swagger.yaml文件(示例):swagger: '2.0'
info:
title: Sample API
description: A sample API for Swagger debugging
version: '1.0.0'
paths:
/users:
get:
summary: 获取所有用户
responses:
'200':
description: 用户列表
schema:
type: array
items:
$ref: '#/definitions/User'
definitions:
User:
type: object
properties:
id:
type: integer
name:
type: string
node index.js
http://localhost:3000/api-docs,即可看到加载的API文档。方式二:使用Docker运行
若不想手动配置,可使用Docker快速启动Swagger UI:
docker pull swaggerapi/swagger-ui
docker run -p 80:8080 -v /path/to/your/swagger.yaml:/usr/src/app/swagger.yaml swaggerapi/swagger-ui
访问http://localhost/api-docs(需将/path/to/your/swagger.yaml替换为本地规范文件路径)。
http://localhost:9000),点击顶部菜单栏的File → Import File,选择本地的swagger.yaml/swagger.json文件。/users的GET方法)。解决跨域问题(CORS):
若后端服务未开启CORS,Swagger UI测试时会报跨域错误。可在后端代码中添加CORS支持(如Spring Boot添加@CrossOrigin注解),或在Swagger UI启动时配置代理。
认证配置:
若API需要认证(如Bearer Token、API Key),在Swagger UI的Authorize按钮(右上角)中输入认证信息(如Bearer xxxxx),点击Authorize即可。
使用Visual Studio Code调试:
若需调试后端服务(如Node.js),可通过VS Code的调试功能实现:
.vscode/launch.json文件,配置调试参数:{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js", // 替换为你的入口文件
"skipFiles": ["<node_internals>/**"]
}
]
}
F5,启动调试会话,可设置断点、查看变量值、跟踪执行流程。-p参数修改端口(如swagger-editor -p 8081)。sudo ufw allow 3000)。通过以上步骤,即可在Ubuntu环境下完成Swagger规范的编写、调试及API接口的测试。若需更复杂的功能(如自动化测试),可结合Swagger Codegen或Postman等工具扩展。