心软的马克杯 · es scroll ...· 1 周前 · |
小眼睛的火车 · 【图像处理】OpenCV+Python图像处 ...· 3 月前 · |
慷慨大方的泡面 · Scala Compiliation ...· 11 月前 · |
博学的煎饼 · Python ...· 1 年前 · |
慷慨大方的口罩 · js根据当前时区获取当前北京时间 - ...· 1 年前 · |
我正在尝试创建一个具有另一个DTO作为数组的DTO,但是在发送body时,nestjs/swagger没有检测到body内容。我的DTO是:
export class CreatePageDto {
@ApiHideProperty()
createAt: Date;
@ApiHideProperty()
updateAt: Date;
@ApiProperty({
type: CreatePageTranslateDto,
isArray: true,
translations: CreatePageTranslateDto[];
export class CreatePageTranslateDto {
@ApiProperty()
slug: string;
@ApiProperty()
title: string;
@ApiProperty({
enum: AvailableLanguages,
lang: AvailableLanguages;
}
当一个人发表这样的文章时:
curl --location --request POST 'http://localhost:3000/pages' \
--header 'Content-Type: application/json' \
--data-raw '{
"translations": [
"slug": "nombre-de-ejemplo",
"title": "Nombre de ejemplo",
"lang": "es"
}'
我得到了一个空虚的身体。
问题是类验证器。我决定在全球范围内设置类验证器,但我做得不对。问题是由于白名单属性设置为true:“如果设置为true,验证器将从没有任何装饰器的任何属性中删除已验证的对象”。
您必须先切换类位置,然后请将这个装饰器
@ApiExtraModels()
添加到类
CreatePageTranslateDto
之上。
所以,代码会是这样的:
@ApiExtraModels() <-----
export class CreatePageTranslateDto {
@ApiProperty()
slug: string;
@ApiProperty()
title: string;
@ApiProperty({
enum: AvailableLanguages,
lang: AvailableLanguages;
export class CreatePageDto {
@ApiHideProperty()
createAt: Date;
@ApiHideProperty()
updateAt: Date;
@ApiProperty({
type: CreatePageTranslateDto,
isArray: true,
translations: CreatePageTranslateDto[];
}