Tag-Gruppen + Redoc
Registrier Gruppen über docs({ group, tags }) und häng die x-tagGroups-Erweiterung vor dem Ausliefern an das Dokument an.
Gruppen registrieren
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 und tags in docs() sind optional. tags sollte dem entsprechen, was du bereits an ApiTags() übergibst: nestjs-docfy ruft ApiTags nicht selbst auf, es nutzt diese Namen nur, um das x-tagGroups-Mapping zu bauen. Mehrere docs()-Aufrufe können zur selben group beitragen; Tags werden zusammengeführt und dedupliziert.
An das Dokument anhängen
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));Ruf attachTagGroups() nach SwaggerModule.createDocument() und vor SwaggerModule.setup() auf. Hat kein Controller eine group registriert, ist die Funktion ein No-op und gibt das Dokument unverändert zurück. Redoc liest x-tagGroups nativ und rendert die gruppierte Sidebar. Details unter Tag-Gruppen.