-
nestjs swagger에서 enum validate 처리 하기NodeJS 2022. 11. 17. 15:11728x90
문서나 인터넷을 찾아보면 ApiProperty에 enum이용하면 validate가 되는것 처럼 설명되어 있으나 동작하지 않습니다.
IsEnum 이라는 Annotation을 이용하면 해결이 되네요.
import { ApiProperty } from '@nestjs/swagger'; import { IsEnum, IsNotEmpty, IsNumber, IsString } from 'class-validator'; enum TCD { DQST = 'DQST', DLDR = 'DLDR', DNIF = 'DNIF', DROP = 'DROP', CQST = 'CQST', CLDR = 'CLDR', CNIF = 'CNIF', CROP = 'CROP', } export class CreateCmtPostDDto { @ApiProperty({ description: '게시글 유형 코드', }) @IsNotEmpty() @IsEnum(Object.values(TCD)) pstTcd: TCD; }
Swagger API를 찾아보아도않습니다.
enum 값이 아닌 다른 값을 넣었을때 결과는 아래와 같습니다.
{ "statusCode": 400, "error": "Bad Request", "path": "/v1/cmtPost", "method": "POST", "timeStamp": "2022-09-07T06:07:29.632Z", "request": { "statusCode": 400, "message": [ "pstTcd must be a valid enum value" ], "error": "Bad Request" } }
참고 자료
728x90'NodeJS' 카테고리의 다른 글
nestjs에서 특정 시간동안 게시글 / 댓글 / 대댓글 등록 제한 처리 (0) 2022.12.12 nestjs에서 config모듈을 이용한 설정 관리 (0) 2022.12.09 typeorm에서 페이징 처리시 distinct 실행 문제 (0) 2022.11.16 bcrypt를 bcryptjs로 전환 (0) 2022.11.15 nestjs에서 jest TIP 정리 (0) 2022.11.07