我目前正在NestJS学习。现在我正在试验Swagger功能。我按照NestJS网站上的解释,显示了一个很好的Swagger页面。但是,现在我无法再使用我的控制器路径了。
例:
我有一个路径/api/users
将返回用户记录列表。添加Swagger功能后,我在/api
上获得了Swagger UI。当我尝试请求/api/users
时,我也获得了swagger UI,这次是空的。
当我点击“试用”按钮为“用户”API /users
而不是/api/users
将被执行,当然有404响应。
我究竟做错了什么?请帮忙。
我假设您已将应用的全局前缀设置为/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);
// ^^^^^^