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()
?