如何在调用函数Node.js中使用swagger-ui-express.serve和设置swagger文档

时间:2018-11-14 13:21:32

标签: swagger swagger-ui swagger-node

const swaggerUi = require('swagger-ui-express');
const swaggerDocument = require('./swagger.json');

app.use('/swagger', swaggerUi.serve, swaggerUi.setup(swaggerDocument));

相反,我想使用NodeJS的内部回调函数 需要在回调函数中动态设置基本路径。

app.use('/swagger', function(req,res) {
  swaggerDocument.basepath = "/pet/details",
  res.send(swaggerUi.serve, swaggerUi.setup(swaggerDocument));
});

请帮助我解决这个问题。

1 个答案:

答案 0 :(得分:2)

找到了解决方案,

使用了这样的回调函数,

router.use(
 swaggerUi.serve,
 function(req, res) {
   swaggerDocument.host = req.get('host'); // Replace hardcoded host information in swagger file
   swaggerDocument.schemes = [req.protocol]; // Replace hardcoded protocol information in Swagger file
   swaggerUi.setup(swaggerDocument)(req, res);
 }
});