Groupes de tags (x-tagGroups)

Organise les contrôleurs en sections logiques dans les outils qui supportent l'extension x-tagGroups, en particulier ReDoc.

Déclarer les groupes

Passe group et tags à docs() :

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

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

tags doit correspondre à ce que tu passes déjà à ApiTags(). nestjs-docfy n'appelle pas ApiTags à ta place, il construit seulement le mapping x-tagGroups à partir de ce que tu déclares.

Rattacher au document

Pour vraiment rattacher les groupes au document généré, appelle attachTagGroups() après SwaggerModule.createDocument() :

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

const config = new DocumentBuilder().setTitle('My API').build();
const document = SwaggerModule.createDocument(app, config);

SwaggerModule.setup('api', app, attachTagGroups(document));

Extension générée

yaml
x-tagGroups:
  - name: Administration
    tags:
      - users
      - roles

Plusieurs appels à docs() peuvent contribuer au même groupe : les tags sont fusionnés et dédupliqués. attachTagGroups() ne fait rien (renvoie le document inchangé) quand aucun contrôleur ne déclare de group.