Группы тегов (x-tagGroups)

Раскладывайте контроллеры по логическим разделам в инструментах, которые понимают расширение x-tagGroups. Прежде всего это ReDoc.

Объявление групп

Передайте group и tags в 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 должны совпадать с тем, что вы уже передаёте в ApiTags(). nestjs-docfy не вызывает ApiTags за вас, он лишь строит отображение x-tagGroups по вашему объявлению.

Присоединение к документу

Чтобы группы действительно попали в готовый документ, вызовите attachTagGroups() после 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));

Полученное расширение

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

В одну группу могут складываться несколько вызовов docs(): теги объединяются, дубликаты убираются. Если ни один контроллер не объявил group, attachTagGroups() ничего не делает и возвращает документ как есть.