<aside> 📢 @ApiConsumes('multipart/form-data') 선언해야만 application/json 타입이 아니라, 직접 하나씩 프로퍼티 값을 입력할 수 있도록 변경됨~!

</aside>

이슈


코드

삽질 과정


검색 결과

@ApiBody() 데코레이터를 사용하고,

schema의 properties에서 image: { type: ‘string’, format: ‘binary’ }를 사용하면 된다고 함!

@Post()
@UseInterceptors(FileInterceptor('image'))
@ApiOperation({ summary: '타임라인 생성', description: '...'})
@ApiConsumes('multipart/form-data')
***@ApiBody({
    description: 'File upload with additional data',
    schema: {
      type: 'object',
      properties: {
        image: {
          type: 'string',
          format: 'binary',
        },
      },
    },
  })***
async create(
  @Req() request,
  **@UploadedFile() image: Express.Multer.File,
  @Body() createTimelineDto: CreateTimelineDto**
): Promise<Timeline> {
  const userId = request['user'].id;
  return this.timelinesService.create(userId, image, createTimelineDto);
}