Tag groups (x-tagGroups)

Organiza controllers en secciones lógicas en herramientas que soportan la extensión x-tagGroups, sobre todo ReDoc.

Declarar grupos

Pasa group y tags a 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 debe coincidir con lo que ya pasas a ApiTags(). nestjs-docfy no llama a ApiTags por ti, solo construye el mapeo de x-tagGroups a partir de lo que declaras.

Adjuntar al documento

Para adjuntar de verdad los grupos al documento generado, llama a attachTagGroups() después de 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));

Extensión generada

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

Varias llamadas a docs() pueden contribuir al mismo grupo: los tags se fusionan y se eliminan duplicados. attachTagGroups() es un no-op (devuelve el documento sin cambios) cuando ningún controller declara un group.