Tag groups + Redoc

Registre grupos via docs({ group, tags }) e anexe a extensão x-tagGroups ao documento antes de servir.

Registrar grupos

users.controller.docs.ts / roles.controller.docs.ts
docs(UsersController, {
  classDecorators: [ApiTags('users')],
  group: 'Administration',
  tags: ['users'],
});

docs(RolesController, {
  classDecorators: [ApiTags('roles')],
  group: 'Administration',
  tags: ['roles'],
});

group e tags em docs() são opcionais. tags deve corresponder ao que você já passa para ApiTags(): nestjs-docfy não chama ApiTags por você, apenas usa esses nomes para montar o mapeamento de x-tagGroups. Múltiplas chamadas de docs() podem contribuir para o mesmo group; as tags são mescladas e deduplicadas.

Anexar ao documento

main.ts
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { attachTagGroups } from 'nestjs-docfy';

const document = SwaggerModule.createDocument(app, new DocumentBuilder().build());
SwaggerModule.setup('api', app, attachTagGroups(document));

Chame attachTagGroups() depois de SwaggerModule.createDocument() e antes de SwaggerModule.setup(). Se nenhum controller registrou um group, a função é um no-op e devolve o documento sem alterações. Redoc lê x-tagGroups nativamente e renderiza a sidebar agrupada. Detalhes em Tag groups.