在Ubuntu上用Swagger进行API监控的步骤
Swagger Editor和Swagger UI均需通过npm(Node.js包管理器)安装,因此需先确保系统具备Node.js环境。
打开终端,执行以下命令更新包列表并安装Node.js及npm:
sudo apt update
sudo apt install nodejs npm
安装完成后,可通过node -v和npm -v验证安装是否成功。
通过npm直接安装Swagger Editor和Swagger UI(简化部署流程):
npm install -g swagger-editor
npm install -g swagger-ui-express
若需自定义配置,可下载Swagger的压缩包并手动启动:
npm install -g http-server启动静态服务器:wget https://github.com/swagger-api/swagger-editor/archive/refs/tags/v3.16.1.tar.gz
tar -xvf v3.16.1.tar.gz
cd swagger-editor-3.16.1
npm install -g http-server
http-server -p 8080
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v3.48.0.tar.gz
tar -xvf v3.48.0.tar.gz
cd swagger-ui-3.48.0
npm install -g express
node index.js
安装完成后,Swagger Editor可通过http://localhost:8080访问,Swagger UI通过http://localhost:3000访问。
启动Swagger Editor后,点击页面左侧的“+”号或“Import File”按钮,上传本地的swagger.yaml(或swagger.json)文件。编辑完成后,可实时预览API文档的结构和内容。
启动Swagger UI后,在浏览器页面的输入框中粘贴Swagger文档的URL(如http://localhost:8080/swagger.yaml),或点击“Choose File”上传本地文件,点击“Explore”按钮即可加载并查看API文档。
Swagger UI提供了“Try it out”按钮,可直接在界面上测试API的请求与响应:
GET /users);若需监控API的使用频率、响应时间、错误率等指标,需借助Prometheus(数据采集)和Grafana(可视化)工具:
确保Swagger生成的swagger.yaml或swagger.json文件可通过网络访问(如将文件放在Web服务器根目录,或通过Express路由暴露):
// 示例:Express暴露swagger.yaml
const express = require('express');
const YAML = require('yamljs');
const app = express();
const swaggerDocument = YAML.load('./swagger.yaml');
app.get('/swagger.json', (req, res) => {
  res.json(swaggerDocument);
});
app.listen(8080, () => console.log('Swagger docs exposed at http://localhost:8080/swagger.json'));
下载Prometheus(如v2.30.3),编辑prometheus.yml文件,添加Swagger文档的抓取目标:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64
修改prometheus.yml,添加以下内容:
scrape_configs:
  - job_name: 'swagger'
    static_configs:
      - targets: ['localhost:8080']  # Swagger文档所在地址
启动Prometheus:
./prometheus --config.file=prometheus.yml
下载Grafana(如v8.2.0),启动服务并设置数据源为Prometheus:
wget https://dl.grafana.com/oss/release/grafana-8.2.0.linux-amd64.tar.gz
tar -zxvf grafana-8.2.0.linux-amd64.tar.gz
cd grafana-8.2.0
编辑conf/grafana.ini,配置Prometheus数据源:
[data]
type = Prometheus
url = http://localhost:9090
启动Grafana:
./bin/grafana-server web
访问http://localhost:3000(默认账号admin/admin),添加Prometheus数据源后,可导入Swagger监控仪表板模板(如社区提供的“Swagger API Metrics”模板),实现API使用情况的可视化监控。
systemctl管理),确保开机自启;