Swagger UI总是出现在NestJS中

问题描述 投票:0回答:1

我目前正在NestJS学习。现在我正在试验Swagger功能。我按照NestJS网站上的解释,显示了一个很好的Swagger页面。但是,现在我无法再使用我的控制器路径了。

例: 我有一个路径/api/users将返回用户记录列表。添加Swagger功能后,我在/api上获得了Swagger UI。当我尝试请求/api/users时,我也获得了swagger UI,这次是空的。 当我点击“试用”按钮为“用户”API /users而不是/api/users将被执行,当然有404响应。

我究竟做错了什么?请帮忙。

javascript node.js typescript swagger nestjs
1个回答
2
投票

我假设您已将应用的全局前缀设置为/api。然后你还必须相应地设置swagger的基本路径。此外,您应该将swagger文档挂载到未使用的路径:

// Set the global prefix for all controllers to /api
app.setGlobalPrefix('api');

const document = SwaggerModule.createDocument(
  app,
  new DocumentBuilder()
    // Set the base path for swagger accordingly
    .setBasePath('api')
    .build(),
);

// Choose an unused path to mount your swagger module
SwaggerModule.setup('docs', app, document);
//                  ^^^^^^
© www.soinside.com 2019 - 2024. All rights reserved.