Nestjs IsEnum dto 验证和招摇
Posted
技术标签:
【中文标题】Nestjs IsEnum dto 验证和招摇【英文标题】:Nestjs IsEnum dto validation and swagger 【发布时间】:2020-09-30 00:55:08 【问题描述】:这工作正常:
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;
并且大摇大摆地看起来像这样:
我正在尝试了解如何将严重性类型更改为枚举,我已经尝试过:
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 看起来有点不对劲(示例不正确,并且架构中严重性的描述嵌套在括号中:
【问题讨论】:
【参考方案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
【讨论】:
谢谢,我正在研究那个文档,但那个具体的例子不知何故逃过了我的眼睛.. :/ 实际上该链接现在被重定向到docs.nestjs.com/openapi/introduction,其中没有提及枚举。 Nest 的招摇整合似乎是一个记录不充分的话题以上是关于Nestjs IsEnum dto 验证和招摇的主要内容,如果未能解决你的问题,请参考以下文章