OpenAPI Swagger - параметры с пустыми и нулевыми значениями

Как можно использовать пустые и пустые параметры, такие как параметр запросаmetadata в таком маршруте, как GET /foo?metadataбыть задокументированным в @nestjs / swagger? Используя либоreadonly metadata?: null; или readonly metadata?: null; в пути @Query() Класс dto предлагает пользователю в сгенерированном swagger ввести string ценность для metadataсвойство. Это сбивает с толку, потому что этому параметру запроса не следует передавать значение. Также пытаюсь@ApiProperty({ required: false, default: true, nullable: true }) readonly metadata?: boolean предоставляет раскрывающийся список, но не добавляет Send empty value флажок, который будет в swagger/oas3.

В Swagger/OAS3 это было бы задокументировано как:

parameters:
  - in: query
    name: metadata
    schema:
      type: boolean
    allowEmptyValue: true

Ключевым моментом здесь будет собственность allowEmptyValue. Как можетallowEmptyValue быть определенным в классе TypeScript, представляющем @Query() dto либо через @nest/swaggerдекораторы или декораторы валидаторов классов? Похоже, у BaseParemeterObject есть свойствоallowEmptyValue: boolean, но как это можно использовать с отдельным свойством запроса dto param?

Обновить:

Я могу использовать ApiQuery() декоратор на маршруте в @Controller() следующим образом, чтобы получить правильную функциональность:

@ApiQuery({ name: 'metadata', allowEmptyValue: true, type: Boolean, required: false })

Но как я могу получить такую ​​же функциональность в aa class DTO, представляющий Query()?

0 ответов

Другие вопросы по тегам