applyDocfyMetadata(document, options?)
Вносит в уже собранный документ OpenAPI метаданные, которые плагин CLI из nestjs-docfy подготовил во время сборки.
Использование
Вызывайте сразу после SwaggerModule.createDocument(), в той же точке жизненного цикла, где вы бы вливали результат запущенного вручную patch-spec. Разница в том, что здесь всё происходит само на каждой сборке, без отдельного шага CLI. Полная картина, включая регистрацию в nest-cli.json, описана в разделе Плагин CLI.
import { NestFactory } from '@nestjs/core';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import { applyDocfyMetadata } from 'nestjs-docfy';
const app = await NestFactory.create(AppModule);
const document = SwaggerModule.createDocument(app, new DocumentBuilder().build());
SwaggerModule.setup('api', app, applyDocfyMetadata(document));
await app.listen(3000);Всё это работает и когда сборка идёт через SWC ("builder": "swc"), при условии, что задан ещё и "typeCheck": true. Подробности в разделе о сборщике SWC в руководстве по плагину.
Параметры
| Option | Type | Default | Description |
|---|---|---|---|
metadataPath | string | docfy-metadata.json рядом с входным файлом | Абсолютный путь к файлу метаданных, который записал плагин. |
strict | boolean | false | Бросать исключение вместо предупреждения, когда файл метаданных отсутствует или не разбирается. Работает так же, как DocfyModule.forRoot({ strict }). |
Если файл метаданных не найден (например, плагин не зарегистрирован в nest-cli.json), функция выведет предупреждение и вернёт документ без изменений. Это то же поведение по умолчанию, что и у DocfyModule.forRoot().