Grupy tagów (x-tagGroups)

Organizuj kontrolery w logiczne sekcje w narzędziach wspierających rozszerzenie x-tagGroups, przede wszystkim w ReDoc.

Deklarowanie grup

Przekaż group i tags do 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 musi zgadzać się z tym, co już przekazujesz do ApiTags(). nestjs-docfy nie wywołuje za Ciebie ApiTags, tylko buduje mapowanie x-tagGroups z tego, co zadeklarujesz.

Dołączanie do dokumentu

Aby faktycznie dołączyć grupy do wygenerowanego dokumentu, wywołaj attachTagGroups() po 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));

Wygenerowane rozszerzenie

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

Wiele wywołań docs() może wnosić wkład do tej samej grupy: tagi są scalane i deduplikowane. attachTagGroups() nic nie robi (zwraca dokument bez zmian), gdy żaden kontroler nie deklaruje group.