温馨提示×

Debian中Swagger UI如何自定义与扩展

小樊
49
2025-10-06 04:53:27
栏目: 智能运维

在Debian系统中,要自定义和扩展Swagger UI,可以遵循以下步骤:

  1. 安装Swagger UI: 首先,确保已经安装了Node.js和npm。然后,通过npm安装swagger-ui-express包:

    npm install swagger-ui-express
    
  2. 创建一个简单的Express应用: 在项目目录中创建一个名为app.js的文件,并添加以下内容:

    const express = require('express');
    const swaggerUi = require('swagger-ui-express');
    const YAML = require('yamljs');
    
    const app = express();
    const port = process.env.PORT || 3000;
    
    // 读取Swagger文档
    const swaggerDocument = YAML.load('./swagger.yaml');
    
    // 使用swagger-ui-express中间件
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument));
    
    app.listen(port, () => {
      console.log(`Server is running at http://localhost:${port}`);
    });
    

    这里,我们使用了一个名为swagger.yaml的Swagger文档文件。确保此文件存在于项目目录中。

  3. 自定义Swagger UI: 要自定义Swagger UI,可以使用swagger-ui-express提供的选项。例如,可以更改UI的颜色主题、深度等。以下是一个自定义Swagger UI的示例:

    const customUiOptions = {
      deepLinking: true,
      presets: [
        swaggerUi.presets.apis,
        swaggerUi.presets.promises,
        swaggerUi.presets.filters,
        swaggerUi.presets.info,
      ],
      plugins: [
        swaggerUi.plugins.DownloadUrl,
      ],
      layout: "StandaloneLayout",
      requestInterceptor: (req) => {
        // 在这里可以修改请求
        return req;
      },
    };
    
    app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument, customUiOptions));
    
  4. 扩展Swagger UI: 要扩展Swagger UI,可以编写自定义插件或中间件。例如,可以创建一个中间件来记录API调用次数。以下是一个简单的中间件示例:

    let apiCallCount = 0;
    
    const apiCallCounterMiddleware = (req, res, next) => {
      apiCallCount++;
      console.log(`API call count: ${apiCallCount}`);
      next();
    };
    
    app.use(apiCallCounterMiddleware);
    

    然后,在customUiOptions中添加此中间件:

    const customUiOptions = {
      // ...其他选项
      middleware: [apiCallCounterMiddleware],
    };
    
  5. 运行应用: 在项目目录中运行以下命令启动应用:

    node app.js
    

    现在,可以在浏览器中访问http://localhost:3000/api-docs查看自定义和扩展后的Swagger UI。

以上步骤展示了如何在Debian系统中自定义和扩展Swagger UI。可以根据需要进一步定制和扩展。

0