路径中的空值和可空参数(例如查询参数)如何记录在@nestjs/swagger中?在路由dto 类中使用或在生成的 swagger 中提示用户输入属性值。这很令人困惑,因为没有任何值要传递给这个查询参数。还尝试提供一个下拉列表,但不添加将在 swagger/oas3 中的复选框。metadata
GET /foo?metadata
readonly metadata?: null;
readonly metadata?: null;
@Query()
string
metadata
@ApiProperty({ required: false, default: true, nullable: true }) readonly metadata?: boolean
Send empty value
在 Swagger/OAS3 中,这将被记录为:
parameters:
- in: query
name: metadata
schema:
type: boolean
allowEmptyValue: true
这里的关键是属性allowEmptyValue
。如何通过装饰器或类验证器allowEmptyValue
装饰器在表示 dto 的 TypeScript 类中定义?看起来BaseParemeterObject具有属性,但是如何将其与单个查询 dto 参数属性一起使用?@Query()
@nest/swagger
allowEmptyValue: boolean
更新:
我可以在如下ApiQuery()
路线上使用装饰器来获得正确的功能:@Controller()
@ApiQuery({ name: 'metadata', allowEmptyValue: true, type: Boolean, required: false })
class
但是我怎样才能在代表的 DTO中获得相同的功能Query()
?