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, который вот-вот будет создан.

Другие вопросы по тегам