如何在CentOS上测试Swagger
导读:一、准备工作:安装必要依赖 在CentOS上测试Swagger前,需先安装Node.js、npm(用于管理前端组件)和Docker(可选,用于快速部署Swagger UI/Editor)。 安装Node.js和npm: 执行以下命令安装...
一、准备工作:安装必要依赖
在CentOS上测试Swagger前,需先安装Node.js、npm(用于管理前端组件)和Docker(可选,用于快速部署Swagger UI/Editor)。
-
安装Node.js和npm:
执行以下命令安装Node.js(以v14.17.0为例):wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz tar -xf node-v14.17.0-linux-x64.tar.xz sudo mv node-v14.17.0-linux-x64 /usr/local/nodejs export PATH=$PATH:/usr/local/nodejs/bin # 临时生效,建议写入~/.bashrc永久生效验证安装:
node -v(显示版本号)、npm -v(显示版本号)。 -
安装Docker(可选):
若使用Docker快速部署,执行以下命令:sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker
二、部署Swagger UI(核心测试界面)
Swagger UI是交互式测试工具,以下提供本地部署和Docker部署两种方式:
1. 本地部署Swagger UI
- 下载并解压Swagger UI:
cd /opt/swagger wget https://github.com/swagger-api/swagger-ui/archive/v3.34.0.tar.gz tar -xf v3.34.0.tar.gz cd swagger-ui-3.34.0 - 配置Express静态服务:
npm init -y npm install express --save mkdir public cp -r dist/* public/ # 将Swagger UI静态文件复制到public目录 - 创建启动脚本:
编辑index.js,配置静态资源路径和默认文档:var express = require('express'); var app = express(); app.use('/static', express.static('public')); // 静态资源路径 app.get('/', (req, res) => { res.sendFile(__dirname + '/public/index.html'); // 默认加载Swagger UI } ); app.listen(3000, () => console.log('Swagger UI running on http://localhost:3000')); - 启动服务:
访问node index.jshttp://< CentOS_IP> :3000,即可看到Swagger UI界面。
2. Docker部署Swagger UI
若不想安装依赖,可使用Docker快速启动:
docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 8080:8080 -e SWAGGER_FILE=/app/swagger.json -v /opt/swagger/docs:/app swaggerapi/swagger-ui:v4.15.5
-e SWAGGER_FILE:指定Swagger文档路径(需提前将swagger.json放在/opt/swagger/docs目录);- 访问
http://< CentOS_IP> :8080即可查看文档。
三、部署Swagger Editor(可选,用于编写文档)
若需要编写或修改Swagger文档(YAML/JSON格式),可部署Swagger Editor:
cd /opt/swagger
wget https://github.com/swagger-api/swagger-editor/archive/v3.14.0.tar.gz
tar -xf v3.14.0.tar.gz
cd swagger-editor-3.14.0
npm install -g http-server # 安装静态服务器
http-server -p 8081 # 启动服务,默认端口8081
访问http://<
CentOS_IP>
:8081,即可在线编写API文档。
四、测试Swagger API
1. 通过Swagger UI测试(推荐)
- 导入文档:
将Swagger文档(swagger.json或swagger.yaml)上传至Swagger UI的public目录,或修改index.html中的SWAGGER_URL指向文档路径(如http://< CentOS_IP> :3000/static/your-swagger.json); - 测试接口:
在Swagger UI界面中,找到目标接口,点击右侧Try it out按钮,输入参数(若有),再点击Execute,即可查看接口响应结果(包括状态码、返回数据)。
2. 通过curl命令测试(命令行方式)
若不想使用浏览器,可直接用curl命令发送请求,验证接口功能:
- GET请求(参数在URL中):
curl "http://< server_ip> :< port> /api/endpoint?param1=value1& param2=value2" - POST请求(表单参数):
curl -X POST "http://< server_ip> :< port> /api/endpoint" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "param1=value1& param2=value2" - POST请求(JSON参数):
curl -X POST "http://< server_ip> :< port> /api/endpoint" \ -H "Content-Type: application/json" \ -d '{ "key1":"value1","key2":"value2"} ' - 带文件的POST请求:
curl -X POST "http://< server_ip> :< port> /api/upload" \ -F "file=@/path/to/local/file" \ -F "param1=value1"
五、注意事项
- 防火墙设置:确保CentOS防火墙开放了Swagger UI(如3000、8080端口)和API服务的端口:
sudo firewall-cmd --permanent --add-port=3000/tcp sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload - HTTPS配置:生产环境中建议使用HTTPS(可通过Nginx反向隧道配置),避免数据泄露。
- 文档准确性:确保Swagger文档(
swagger.json/swagger.yaml)与后端API接口一致,否则测试结果可能不准确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在CentOS上测试Swagger
本文地址: https://pptw.com/jishu/743956.html
