温馨提示×

如何通过Debian实现Swagger API版本管理

小樊
51
2025-09-19 05:59:24
栏目: 智能运维

在Debian系统上实现Swagger API版本管理,可以遵循以下步骤:

1. 安装必要的软件包

首先,确保你的Debian系统已经安装了必要的软件包,包括Node.js、npm(Node.js的包管理器)和Swagger工具。

sudo apt update
sudo apt install nodejs npm

然后,安装Swagger命令行工具:

sudo npm install -g swagger-jsdoc swagger-ui-express

2. 创建项目结构

创建一个新的项目目录,并在其中组织你的API文件和Swagger配置。

mkdir swagger-api
cd swagger-api
mkdir src
mkdir config

3. 配置Swagger

config目录下创建一个Swagger配置文件,例如swagger.js

// config/swagger.js
const swaggerJsDoc = require('swagger-jsdoc');

const swaggerOptions = {
  swaggerDefinition: {
    info: {
      title: 'My API',
      version: '1.0.0',
      description: 'A sample API',
    },
  },
  apis: ['./src/**/*.js'], // 指定API文件路径
};

const swaggerDocs = swaggerJsDoc(swaggerOptions);
module.exports = swaggerDocs;

4. 创建API文件

src目录下创建你的API文件,例如user.js

// src/user.js
/**
 * @swagger
 * /users:
 *   get:
 *     summary: List all users
 *     responses:
 *       '200':
 *         description: An array of users
 */
module.exports = (req, res) => {
  res.json([{ id: 1, name: 'John Doe' }]);
};

5. 设置Express服务器

在项目根目录下创建一个server.js文件,并设置Express服务器。

// server.js
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocs = require('./config/swagger');

const app = express();
const port = 3000;

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));

app.use('/users', require('./src/user'));

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

6. 运行服务器

现在你可以运行你的Express服务器,并访问Swagger UI来查看和测试你的API。

node server.js

打开浏览器并访问http://localhost:3000/api-docs,你应该能够看到Swagger UI界面,其中包含了你的API文档。

7. 版本管理

为了实现API版本管理,你可以在URL中添加版本号,例如/api/v1/users

修改server.js文件:

// server.js
const express = require('express');
const swaggerUi = require('swagger-ui-express');
const swaggerDocsV1 = require('./config/swagger-v1');
const swaggerDocsV2 = require('./config/swagger-v2');

const app = express();
const port = 3000;

app.use('/api-docs/v1', swaggerUi.serve, swaggerUi.setup(swaggerDocsV1));
app.use('/api-docs/v2', swaggerUi.serve, swaggerUi.setup(swaggerDocsV2));

app.use('/api/v1/users', require('./src/user-v1'));
app.use('/api/v2/users', require('./src/user-v2'));

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

创建新的Swagger配置文件swagger-v2.js

// config/swagger-v2.js
const swaggerJsDoc = require('swagger-jsdoc');

const swaggerOptions = {
  swaggerDefinition: {
    info: {
      title: 'My API',
      version: '2.0.0',
      description: 'A sample API',
    },
  },
  apis: ['./src/**/*.js'], // 指定API文件路径
};

const swaggerDocs = swaggerJsDoc(swaggerOptions);
module.exports = swaggerDocs;

创建新的API文件user-v2.js

// src/user-v2.js
/**
 * @swagger
 * /users:
 *   get:
 *     summary: List all users (v2)
 *     responses:
 *       '200':
 *         description: An array of users
 */
module.exports = (req, res) => {
  res.json([{ id: 2, name: 'Jane Doe' }]);
};

现在,你可以通过访问http://localhost:3000/api-docs/v1http://localhost:3000/api-docs/v2来查看不同版本的API文档。

通过这种方式,你可以在Debian系统上实现Swagger API版本管理。

0