라이브러리, 프레임워크/Swagger
[Swagger + NestJS] PickType 이용 시 @ApiProperty 적용 안되는 문제
dv_jamie
2022. 7. 6. 11:57
문제
import { PickType } from '@nestjs/mapped-types';
import { ApiProperty } from '@nestjs/swagger';
import { IsNumber } from 'class-validator';
import { Alarm } from 'src/_entity/alarm.entity';
export class CreateAlarmDto extends PickType(Alarm, [
'type',
'image',
'text',
'link'
] as const) {
@ApiProperty({ description: '유저 ID' })
@IsNumber({}, { each: true })
userIds: number[];
}
Dto를 만들면서 Alarm 엔티티를 상속하는 PickType을 사용했는데,
Swagger를 보니 Request body가 아래와 같이 나왔다.
(PickType으로 가져온 필드들이 보이지 않음, Entity에서 분명 @ApiProperty 모두 추가되어 있음)
해결
{ PickType } import 시 @nestjs/mapped-types 말고 @nestjs/swagger를 사용했더니 해결되었다.