Tag groups (x-tagGroups)

Organizza i controller in sezioni logiche negli strumenti che supportano l'estensione x-tagGroups, in particolare ReDoc.

Dichiarare i gruppi

Passa group e 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 deve corrispondere a quanto già passi a ApiTags(). nestjs-docfy non chiama ApiTags per te, costruisce solo la mappatura x-tagGroups a partire da ciò che dichiari.

Collegare al documento

Per collegare davvero i gruppi al documento generato, chiama attachTagGroups() dopo 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));

Estensione generata

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

Più chiamate a docs() possono contribuire allo stesso gruppo: i tag vengono uniti e deduplicati. attachTagGroups() non fa nulla (restituisce il documento invariato) quando nessun controller dichiara un group.