An-*_*oid 6 node.js express swagger typescript openapi
我正在尝试找到一个解决方案,使用一个快速应用程序拥有多个swaggerUi文档.
我正在使用 :
"typescript": "^2.5.2",
"swagger-tools": "^0.10.1",
"express": "^4.15.3",
"express-openapi": "^1.0.1",
Run Code Online (Sandbox Code Playgroud)
我的swagger doc文件部分是使用项目文件架构生成的.
我怎样才能做到这一点 ?
编辑---
现在我正在这样初始化swaggerUi:
const openapi = Openapi.initialize({
paths: openApiPaths,
expressApp,
swaggerApiDoc,
});
const openApiSpec: any = openapi.apiDoc;
app.use(swaggerUI(openApiSpec));
Run Code Online (Sandbox Code Playgroud)
哪里openApiPaths包含paths:{}swagger doc
截至 2022 年,您可以向同一应用程序添加多个 swagger UI。来自swagger-UI 文档:
要使用不同的 swagger 文档运行 2 个 swagger ui 实例,请使用serveFiles 函数而不是serve 函数。serveFiles 函数与 setup 函数具有相同的签名。
const express = require('express');
const app = express();
const swaggerUi = require('swagger-ui-express');
const swaggerDocumentOne = require('./swagger-one.json');
const swaggerDocumentTwo = require('./swagger-two.json');
var options = {}
app.use('/api-docs-one', swaggerUi.serveFiles(swaggerDocumentOne, options), swaggerUi.setup(swaggerDocumentOne));
app.use('/api-docs-two', swaggerUi.serveFiles(swaggerDocumentTwo, options), swaggerUi.setup(swaggerDocumentTwo));
Run Code Online (Sandbox Code Playgroud)
您可以在单个 Express 服务器上托管多个 api,只需确保
basePath彼此不重叠即可。
参考: https: //github.com/apigee-127/swagger-tools/issues/530
swaggerTools.initializeMiddleware(doc1, function (mw1) {
// Do stuff with first middleware
swaggerTools.initializeMiddleware(doc2, function (mw2) {
// Do stuff with second middleware
// Repeat...
});
});
Run Code Online (Sandbox Code Playgroud)
参考: https: //github.com/apigee-127/swagger-tools/issues/513
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |