Swagger在Linux环境下的部署指南
Swagger(现更名为OpenAPI Specification)在Linux环境下的部署主要分为容器化部署(推荐)和传统手动部署两类,以下是具体步骤:
容器化部署无需关心依赖冲突,启动快速且易于管理,是最常用的部署方式。
在Linux服务器上安装Docker,以Ubuntu为例:
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker # 启动Docker服务
sudo systemctl enable docker # 设置开机自启
docker pull swaggerapi/swagger-editor:v4.6.0
docker run -d -p 8088:8080 --name swagger-editor swaggerapi/swagger-editor:v4.6.0
http://服务器IP:8088,即可打开Swagger Editor界面,用于编写和编辑OpenAPI规范文件(YAML/JSON格式)。docker pull swaggerapi/swagger-ui:v4.15.5
docker run -d -p 8080:8080 --name swagger-ui swaggerapi/swagger-ui:v4.15.5
http://服务器IP:8080,即可看到Swagger UI界面。默认会加载在线Petstore示例API,你也可以通过修改配置(如挂载本地swagger.json文件)展示自己的API文档。若需从外部网络访问,可使用Cpolar等工具将本地端口映射到公网:
xxxx.cpolar.io:8080),获取公网地址后,即可通过该地址远程访问Swagger UI和Editor。若服务器未安装Docker,可通过手动安装Node.js、npm及Swagger相关组件实现部署。
以Ubuntu为例,通过NodeSource仓库安装Node.js(推荐v16及以上版本):
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs
验证安装:
node -v # 查看Node.js版本
npm -v # 查看npm版本
mkdir -p ~/swagger-editor
cd ~/swagger-editor
npm init -y
npm install express http-server --save
index.js文件,内容如下:const express = require('express');
const httpServer = require('http-server');
const path = require('path');
const app = express();
const server = httpServer.createServer(app);
// 静态文件服务(指向Swagger Editor的dist目录,需提前下载)
app.use(express.static(path.join(__dirname, 'swagger-editor-dist')));
const PORT = 8080;
server.listen(PORT, () => {
console.log(`Swagger Editor running at http://localhost:${PORT}`);
});
swagger-editor-dist(如v3.50.0版本),解压后放入项目目录。node index.js
http://服务器IP:8080,即可使用Swagger Editor。git clone https://github.com/swagger-api/swagger-ui.git
cd swagger-ui
npm install
npm run build
sudo apt install -y nginx
/etc/nginx/sites-available/下创建swagger-ui文件,内容如下:server {
listen 80;
server_name 服务器IP或域名;
root /path/to/swagger-ui/dist; # 指向Swagger UI构建后的dist目录
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
sudo ln -s /etc/nginx/sites-available/swagger-ui /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置文件语法
sudo systemctl restart nginx
http://服务器IP,即可看到Swagger UI界面,默认加载dist目录下的示例API,可通过修改swagger-initializer.js文件指向自己的swagger.json文件。ufw或iptables)开放了对应端口(如8080、80),允许外部访问。swagger-jsdoc(Node.js)或swagger-codegen(Java)等工具,根据代码注释生成swagger.json/swagger.yaml文件。以上步骤覆盖了Linux环境下Swagger的主要部署方式,可根据实际需求选择合适的方法。