在Linux环境下使用Swagger进行API模拟,需先安装Node.js(提供npm包管理器)和Docker(可选,用于快速部署Swagger工具)。
sudo apt update
sudo apt install -y nodejs npm
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
Swagger的Linux使用方式主要有两种:本地项目集成(适合开发调试)和Docker容器部署(适合快速预览)。
通过npm安装Swagger工具,将Swagger UI集成到Node.js项目中,实现API文档与模拟功能的联动。
mkdir swagger-demo && cd swagger-demo
npm init -y
swagger-jsdoc
(生成Swagger文档)和swagger-ui-express
(集成Swagger UI):npm install swagger-jsdoc swagger-ui-express --save
swagger.json
(或swagger.yaml
),定义API规范(含路径、参数、响应示例):{
"openapi": "3.0.0",
"info": {
"title": "Linux API模拟示例",
"version": "1.0.0"
},
"paths": {
"/api/greet": {
"get": {
"summary": "返回问候语",
"parameters": [
{
"name": "name",
"in": "query",
"required": true,
"schema": { "type": "string" },
"description": "用户姓名"
}
],
"responses": {
"200": {
"description": "成功返回问候语",
"content": {
"application/json": {
"schema": { "type": "object", "properties": { "message": { "type": "string" } } }
}
}
}
}
}
}
}
}
server.js
,配置Swagger UI路由:const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');
const app = express();
// 将Swagger UI挂载到/api-docs路径
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
// 示例API接口(对应swagger.json中的定义)
app.get('/api/greet', (req, res) => {
const name = req.query.name || 'World';
res.json({ message: `Hello, ${name}!` });
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
console.log(`Swagger UI可通过 http://localhost:${PORT}/api-docs 访问`);
});
node server.js
打开浏览器访问http://localhost:3000/api-docs
,即可看到Swagger UI界面,包含API文档和Try it out(模拟测试)功能。通过Docker镜像快速启动Swagger Editor或Swagger UI,无需安装本地依赖。
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38080:8080 --name swagger-editor swaggerapi/swagger-editor:v4.6.0
访问http://<Linux服务器IP>:38080
,进入Swagger Editor界面。docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 38081:8080 --name swagger-ui swaggerapi/swagger-ui:v4.15.5
访问http://<Linux服务器IP>:38081
,通过“File”→“Import File”上传swagger.json
文件,即可查看和测试API。无论选择哪种部署方式,核心操作均一致:
/api-docs
自动加载项目中的swagger.json
。swagger.json
。/api/greet
),展开接口详情,填写Try it out区域的参数(如name=John
),点击Execute按钮发送请求。{"message":"Hello, John!"}
),直观验证API逻辑是否符合预期。swagger.json
文件路径正确(与代码中的require
路径一致)。-v $(pwd)/swagger.json:/app/swagger.json
),避免重复上传。