以下是在Debian系统上为Node.js应用配置Swagger UI的详细步骤,涵盖环境准备、依赖安装、文档定义及访问测试:
首先确保Debian系统为最新状态,并安装Node.js(含npm)——Swagger UI的核心运行环境。
sudo apt update && sudo apt upgrade -y # 更新系统软件包
sudo apt install nodejs npm -y # 安装Node.js和npm(建议使用LTS版本)
验证安装是否成功:
node -v # 应输出Node.js版本(如v18.x)
npm -v # 应输出npm版本(如9.x)
通过npm全局安装swagger-ui-express(用于将Swagger文档集成到Express应用)和yamljs(用于解析YAML格式的Swagger文档)。
sudo npm install -g swagger-ui-express yamljs # 全局安装所需工具
在项目根目录下创建swagger.yaml文件(也可使用JSON格式,推荐YAML更易读),定义API的基本信息、路径、参数及响应模型。
swagger: '2.0' # 使用OpenAPI 2.0规范(兼容性更好)
info:
title: Sample API # API标题
description: A demo API for Swagger configuration in Debian # API描述
version: '1.0.0' # API版本
host: localhost:3000 # API宿主地址(根据实际情况调整)
basePath: /api # API基础路径
schemes: # 支持的协议(http/https)
- http
paths:
/users: # API路径
get: # HTTP方法(GET/POST等)
summary: List all users # 方法摘要
responses:
'200': # 响应状态码
description: An array of user objects # 响应描述
schema:
type: array
items:
$ref: '#/definitions/User' # 引用定义的用户模型
definitions:
User: # 用户模型定义
type: object
properties:
id:
type: integer
format: int64
name:
type: string
required: # 必填字段
- id
- name
创建Express应用并配置Swagger UI中间件,将Swagger文档与前端界面关联。
mkdir swagger-project && cd swagger-project # 创建项目目录
npm init -y # 初始化package.json
npm install express swagger-ui-express yamljs --save # 安装项目依赖
创建app.js文件,添加以下代码:
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const YAML = require('yamljs');
// 加载Swagger文档(需确保路径正确)
const swaggerDocument = YAML.load('./swagger.yaml');
const app = express();
// 将Swagger UI挂载到/api-docs路径(可自定义)
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
// 示例路由(用于测试API)
app.get('/api/users', (req, res) => {
res.json([
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
]);
});
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
console.log(`Swagger UI available at http://localhost:${PORT}/api-docs`);
});
运行Express应用,启动Node.js服务器:
node app.js
打开浏览器,访问http://localhost:3000/api-docs,即可看到Swagger UI界面。界面会自动加载swagger.yaml中的文档,支持在线测试API(如点击/users的Try it out按钮)。
若需将应用部署到生产环境,可使用pm2管理进程(避免Node.js应用崩溃)和Nginx作为反向代理(提升性能与安全性):
# 全局安装pm2
sudo npm install -g pm2
# 使用pm2启动应用(进程名称设为swagger-ui)
pm2 start app.js --name swagger-ui
# 配置Nginx反向代理(需提前安装Nginx)
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/swagger-ui # 创建配置文件
在Nginx配置文件中添加以下内容(替换your_domain.com为实际域名):
server {
listen 80;
server_name your_domain.com;
location /api-docs {
proxy_pass http://localhost:3000; # 代理到Node.js应用
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/swagger-ui /etc/nginx/sites-enabled
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
此时可通过http://your_domain.com/api-docs访问Swagger UI。
以上步骤覆盖了Debian下Swagger配置的核心流程,适用于大多数基于Node.js的Express应用。若需适配其他语言(如Java Spring Boot),步骤会有所不同,但核心逻辑一致:安装依赖→定义文档→集成中间件→访问测试。