在Debian系统中,要自定义和扩展Swagger UI,可以遵循以下步骤:
安装Swagger UI: 首先,确保已经安装了Node.js和npm。然后,通过npm安装swagger-ui-express包:
npm install swagger-ui-express
创建一个简单的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文档文件。确保此文件存在于项目目录中。
自定义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));
扩展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], };
运行应用: 在项目目录中运行以下命令启动应用:
node app.js
现在,可以在浏览器中访问http://localhost:3000/api-docs
查看自定义和扩展后的Swagger UI。
以上步骤展示了如何在Debian系统中自定义和扩展Swagger UI。可以根据需要进一步定制和扩展。