Вы можете использовать библиотеку class-transformer . Вы можете использовать его с class-validator для приведения и проверки параметров POST.
Пример:
@Exclude()
class SkillNewDto {
@Expose()
@ApiModelProperty({ required: true })
@IsString()
@MaxLength(60)
name: string;
@Expose()
@ApiModelProperty({
required: true,
type: Number,
isArray: true,
})
@IsArray()
@IsInt({ each: true })
@IsOptional()
categories: number[];
}
Exclude
и Expose
здесь от class-transform
, чтобы избежать дополнительных полей.
IsString
, IsArray
, IsOptional
, IsInt
, MaxLength
от class-validator
.
ApiModelProperty
для документации Swagger
А потом
const skillDto = plainToClass(SkillNewDto, body);
const errors = await validate(skillDto);
if (errors.length) {
throw new BadRequestException('Invalid skill', this.modelHelper.modelErrorsToReadable(errors));
}