Tag-Gruppen (x-tagGroups)

Organisiere Controller in logischen Abschnitten in Tools, die die x-tagGroups-Erweiterung unterstützen, allen voran ReDoc.

Gruppen deklarieren

Übergib group und tags an 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 muss dem entsprechen, was du bereits an ApiTags() übergibst. nestjs-docfy ruft ApiTags nicht selbst auf, es baut aus deinen Angaben nur das x-tagGroups-Mapping.

An das Dokument anhängen

Um die Gruppen tatsächlich an das generierte Dokument anzuhängen, ruf attachTagGroups() nach SwaggerModule.createDocument() auf:

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

Erzeugte Erweiterung

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

Mehrere docs()-Aufrufe können zur selben Gruppe beitragen: Tags werden zusammengeführt und dedupliziert. attachTagGroups() ist ein No-op (gibt das Dokument unverändert zurück), wenn kein Controller eine group deklariert.