在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??梢愿鶕枰M一步定制和擴展。