タググループ + Redoc

docs({ group, tags })でグループを登録し、配信前にx-tagGroups拡張をドキュメントへ紐づけます。

グループを登録する

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'],
});

docs()grouptagsはオプションです。tagsはすでにApiTags()に渡しているものと一致させる必要があります。nestjs-docfyはあなたの代わりにApiTagsを呼び出したりせず、それらの名前を使ってx-tagGroupsのマッピングを構築するだけです。複数のdocs()呼び出しが同じgroupに寄与できます。タグはマージされ重複が除去されます。

ドキュメントへ紐づける

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

SwaggerModule.createDocument()の後、SwaggerModule.setup()の前にattachTagGroups()を呼び出してください。どのコントローラーもgroupを登録していない場合、この関数は何もせずドキュメントを変更せずそのまま返します。Redocはx-tagGroupsをネイティブに読み取り、グループ化されたサイドバーを描画します。詳細はTag groupsを参照してください。

Generated x-tagGroups extension
x-tagGroups:
  - name: Administration
    tags:
      - users
      - roles