[英]NestJs swagger missing base path
在本地机器上一切正常。 部署后出现问题。 部署后, /querybuilder
被附加到基本 url。 所以,
http://localhost:80/helloworld
会成为
http://52.xxx.xxx.139/querybuilder/helloworld
Swagger 页面位于:
http://52.xxx.xxx.139/querybuilder/swagger/
当我通过 swagger ui 页面执行方法时:这是我在网络选项卡中看到的:
请求地址: http://52.xxx.xxx.139/
控制器:
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
主文件
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const options = new DocumentBuilder()
.setTitle('Query Builder - MongoDb Parser')
.setDescription("This is Query Builder's MongoDb Parser takes database agnostic queries and transpiles it into native MongoDb query.")
.setVersion('1.0')
.build();
const document = SwaggerModule.createDocument(app, options);
SwaggerModule.setup('api', app, document);
await app.listen(80);
}
bootstrap();
在大多数情况下,实现此目的最合适的方法是使用setGlobalPrefix方法,该方法为您的 API 端点和 swagger 使用的 URL 添加前缀。
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('querybuilder');
但是,如果您的路由由外部服务器(例如 nginx)处理,您可以使用addServer
方法仅将前缀添加到 swagger 使用的 URL。
const options = new DocumentBuilder()
.setTitle('Query Builder - MongoDb Parser')
.addServer('/querybuilder')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.