Tag groups + Redoc

Registreer groepen via docs({ group, tags }) en koppel de x-tagGroups-extensie aan het document vóór het serveren.

Groepen registreren

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 en tags in docs() zijn optioneel. tags moet overeenkomen met wat je al meegeeft aan ApiTags(): nestjs-docfy roept ApiTags niet zelf aan, het gebruikt die namen alleen om de x-tagGroups-mapping te bouwen. Meerdere docs()-aanroepen kunnen bijdragen aan dezelfde group; tags worden samengevoegd en gededupliceerd.

Aan het document koppelen

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));

Roep attachTagGroups() aan na SwaggerModule.createDocument() en vóór SwaggerModule.setup(). Registreerde geen enkele controller een group, dan is de functie een no-op en geeft ze het document ongewijzigd terug. Redoc leest x-tagGroups native en rendert de gegroepeerde sidebar. Details in Tag groups.

Generated x-tagGroups extension
x-tagGroups:
  - name: Administration
    tags:
      - users
      - roles