温馨提示×

Centos Swagger如何部署

小樊
39
2025-10-13 09:03:11
栏目: 智能运维

CentOS系统部署Swagger指南

Swagger是一套用于设计、构建、记录和使用RESTful API的工具集,其中Swagger UI是常用的交互式文档展示工具。以下是在CentOS系统上部署Swagger UI的具体步骤:

一、准备工作

  1. 更新系统:确保系统为最新版本,避免依赖冲突
    sudo yum update -y 
  2. 安装必要工具:安装编译工具及网络工具
    sudo yum install -y wget curl gcc-c++ make 

二、安装Node.js与npm

Swagger UI依赖Node.js环境,需先安装对应版本(推荐Node.js 12.x及以上):

# 添加NodeSource源(以12.x为例) curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash - # 安装Node.js及npm sudo yum install -y nodejs # 验证安装 node -v # 应输出v12.x.x及以上版本 npm -v # 应输出6.x.x及以上版本 

三、部署Swagger UI

方式1:快速启动Swagger UI(单节点模式)

  1. 下载Swagger UI:从GitHub获取最新稳定版
    mkdir -p /opt/swagger && cd /opt/swagger wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.34.0.tar.gz tar -xzf v3.34.0.tar.gz --strip-components=1 
  2. 启动静态服务:使用http-server快速启动Swagger UI
    npm install -g http-server http-server -p 8080 ./dist 
  3. 访问Swagger UI:在浏览器中输入http://<服务器IP>:8080,即可看到Swagger UI界面。

方式2:集成Express的长期运行方案

若需自定义接口文档路径或添加认证等功能,可通过Express框架部署:

  1. 创建项目目录
    mkdir -p /opt/swagger/{public,server} cd /opt/swagger/server 
  2. 初始化项目并安装依赖
    npm init -y npm install express --save 
  3. 配置静态资源与接口:创建index.js文件,内容如下:
    const express = require('express'); const app = express(); const path = require('path'); // 指向Swagger UI的静态文件目录 app.use('/static', express.static(path.join(__dirname, '../public'))); // 可选:自定义API文档路径(需将接口文档放入public目录) // app.get('/api-docs', (req, res) => { // res.sendFile(path.join(__dirname, '../public/your-api-docs.json')); // }); // 启动服务 app.listen(3000, () => { console.log('Swagger UI运行于 http://localhost:3000/static/index.html'); }); 
  4. 启动服务
    node index.js 
  5. 访问Swagger UI:在浏览器中输入http://<服务器IP>:3000/static/index.html

四、配置自定义API文档

  1. 编写接口文档:使用Swagger Editor(可选)编写API描述文件(支持JSON/YAML格式),保存为api-docs.json(或api-docs.yaml)。
  2. 上传文档:将文档复制到Swagger UI的public目录(如/opt/swagger/public)。
  3. 修改索引文件:编辑/opt/swagger/public/index.html,找到以下代码:
    const ui = SwaggerUIBundle({ url: "https://petstore.swagger.io/v2/swagger.json", // 替换为你的文档路径 // ... }); 
    url值改为本地文档路径,例如:
    url: "/static/api-docs.json" 
  4. 重启服务:若使用Express方案,需重启node index.js使配置生效。

五、生产环境优化建议

  1. 启用HTTPS:使用Let’s Encrypt免费证书,通过Nginx或Apache反向隧道配置HTTPS,避免数据传输泄露。
  2. 配置防火墙:开放必要端口(如80/443或自定义端口),关闭无关端口:
    sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload 
  3. 权限管理:避免使用root用户运行服务,建议创建专用用户(如swagger)并赋予权限。
  4. 持久化存储:将Swagger UI目录挂载至云存储(如OSS),防止数据丢失。

通过以上步骤,即可在CentOS系统上完成Swagger UI的部署,并通过浏览器访问交互式API文档。如需进一步定制(如添加认证、修改主题),可参考Swagger UI官方文档进行调整。

0