Tag groups + Redoc
Registreer groepen via docs({ group, tags }) en koppel de x-tagGroups-extensie aan het document vóór het serveren.
Groepen registreren
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 en tags in docs() zijn optioneel. tags moet overeenkomen met wat je al meegeeft aan ApiTags(): nestjs-docfy roept ApiTags niet zelf aan, het gebruikt die namen alleen om de x-tagGroups-mapping te bouwen. Meerdere docs()-aanroepen kunnen bijdragen aan dezelfde group; tags worden samengevoegd en gededupliceerd.
Aan het document koppelen
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));Roep attachTagGroups() aan na SwaggerModule.createDocument() en vóór SwaggerModule.setup(). Registreerde geen enkele controller een group, dan is de functie een no-op en geeft ze het document ongewijzigd terug. Redoc leest x-tagGroups native en rendert de gegroepeerde sidebar. Details in Tag groups.
Generated x-tagGroups extension
x-tagGroups:
- name: Administration
tags:
- users
- roles