Nestjs IsEnum Dto验证和摇摇欲坠

时间:2020-06-10 14:47:13

标签: nestjs nestjs-swagger

这工作正常:

    import { IsIn } from 'class-validator';
    import { ApiProperty } from '@nestjs/swagger';

    export class createEventDto {
      @IsIn([0, 1, 2, 3, 4, 5])
      @ApiProperty({
        description: 'description of the severity property',
      })
      severity: number;
    }

看起来像这样: swagger-number

我正在尝试了解如何将严重性类型更改为枚举,

export enum Severity {
  Critical = 1,
  Major = 2,
  Minor = 3,
  Warning = 2,
  Info = 1,
  Clear = 0,
}
    import { IsEnum } from 'class-validator';
    import { ApiProperty } from '@nestjs/swagger';
    import { Severity} from '../enums/severities';

    export class createEventDto {
      @IsEnum(Severity)
      @ApiProperty({
        description: 'description of the severity property',
      })
      severity: Severity;
    }

尽管工作正常,但看起来有些张扬(示例是不正确的,模式中严重性的描述嵌套在方括号中: swagger-enum

1 个答案:

答案 0 :(得分:1)

如果要在SwaggerUI上表达枚举,则需要向enum装饰器提供ApiProperty属性

 import { IsEnum } from 'class-validator';
 import { ApiProperty } from '@nestjs/swagger';
 import { Severity} from '../enums/severities';

 export class createEventDto {
   @IsEnum(Severity)
   @ApiProperty({
     description: 'description of the severity property',
     enum: Severity
   })
   severity: Severity;
 }

文档:https://docs.nestjs.com/recipes/swagger#enums