Sam*_*ack 4 javascript node.js swagger nestjs
在本地机器上一切正常。部署后问题就出现了。部署后,/querybuilder将附加到基本 url。所以,
http://localhost:80/helloworld
Run Code Online (Sandbox Code Playgroud)
会成为
http://52.xxx.xxx.139/querybuilder/helloworld
Run Code Online (Sandbox Code Playgroud)
Swagger 页面位于:
http://52.xxx.xxx.139/querybuilder/swagger/
当我通过 swagger ui 页面执行方法时:这是我在网络选项卡中看到的:
控制器:
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
Run Code Online (Sandbox Code Playgroud)
主.ts
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();
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,实现此目的的最合适方法是使用setGlobalPrefix方法,该方法将前缀添加到 API 端点和 swagger 使用的 URL。
const app = await NestFactory.create(AppModule);
app.setGlobalPrefix('querybuilder');
Run Code Online (Sandbox Code Playgroud)
但是,如果您的路由由外部服务器(例如 nginx)处理,则只能将前缀添加到 swagger usingaddServer方法使用的 URL 中。
const options = new DocumentBuilder()
.setTitle('Query Builder - MongoDb Parser')
.addServer('/querybuilder')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3654 次 |
| 最近记录: |