Nestjs Swagger - публикация разных документов API на разных маршрутах
Я создаю приложение с общедоступным и внутренним API. Я хотел бы опубликовать для них документы по разным маршрутам. Я думал, что это можно сделать, добавив в документ только определенные теги (addTag
), но после дальнейшего чтения и экспериментов он не работает.
Документы всегда содержат все, все задокументированные конечные точки из всех модулей.
Это вообще возможно? Если да, то как?
Я не считаю, что код необходим, но FWIW:
const pubOptions = new DocumentBuilder()
.setTitle('Pub API Docs')
.setDescription('Blah blah API documentation')
.setVersion(p.version)
.addBearerAuth()
.addTag('public-app')
.build();
const document = SwaggerModule.createDocument(app, pubOptions);
SwaggerModule.setup('public-api', app, document);
const internalOptions = new DocumentBuilder()
.setTitle('Internal API Docs')
.setDescription('Blah blah API documentation')
.setVersion(p.version)
.addBearerAuth()
.addTag('internal')
.build();
const iDocument = SwaggerModule.createDocument(app, internalOptions);
SwaggerModule.setup('internal-api', app, iDocument);
1 ответ
Решение
Вы должны сказать SwaggerModule.createDocument
функции, какие модули включить в составную часть чванства. Вот соответствующие документы. В качестве третьего параметра вы можете передать объект сinclude
свойство, содержащее массив модулей. Эти модули связаны с документом Swagger, который вот-вот будет создан.