Tag groups + Redoc

Registra i gruppi tramite docs({ group, tags }) e collega l'estensione x-tagGroups al documento prima di servirlo.

Registrare i gruppi

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 in docs() sono opzionali. tags dovrebbe corrispondere a quanto già passi a ApiTags(): nestjs-docfy non chiama ApiTags per te, usa solo quei nomi per costruire la mappatura x-tagGroups. Più chiamate a docs() possono contribuire allo stesso group; i tag vengono uniti e deduplicati.

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

Chiama attachTagGroups() dopo SwaggerModule.createDocument() e prima di SwaggerModule.setup(). Se nessun controller ha registrato un group, la funzione non fa nulla e restituisce il documento invariato. Redoc legge x-tagGroups nativamente e renderizza la sidebar raggruppata. Dettagli in Tag groups.