繁体   English   中英

NestJs swagger 缺少基本路径

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM