TIL)23.08.29(포스트맨 file, requestDto 같이 받기)

주민·2023년 8월 29일
0

TIL

목록 보기
74/84

아래 2개를 매개변수로 받고 테스트 하는 법

MultipartFile file
(List<.MultipartFile>로 해도 무관)
RequestDto requestDto

#controller

@PostMapping("/post")
public ResponseEntity<ApiResponse> createPost(
 @RequestParam(value = "file", required = false) List<MultipartFile> files,
 @RequestPart(value = "requestDto") PostRequestDto postRequestDto) throws IOException {
    postService.createPost(files, postRequestDto);
    return ResponseEntity.status(HttpStatus.CREATED).body(new ApiResponse("post 생성 성공!", HttpStatus.CREATED.value()));
}

MultipartFile은 RequestPart으로 받고 postRequestDto는 RequestPart로 받고 value 값만 설정해주면 된다.
(* required = false은 빈값 허용)

각 value를 key에 입력하고 MultipartFile은 key에서 file 선택 후 파일 선택, postRequestDto는 json 형식으로 입력

이렇게 하고 테스트를 돌리면 오류가 나는데 코드 문제가 아니고 포스트맨에 설정을 하나 추가해주면 된다.

{ "timestamp": "2023-08-29T13:02:13.506+00:00",
"status": 415,
"error": "Unsupported Media Type",
"path": "/api/post" }

  • content type에 "application/json" 추가
    (※ 처음에는 content type가 없다, Description 옆에 ... 에서 추가할 수 있다.)

그럼 성공!

{ "message": "post 생성 성공!",
"statusCode": 201 }

주의할 점

PostMapping 이나 RequestParam/RequestPart 애네테이션에 다른 설정을 굳이 주지 않아도 되며 오히려 오류가 날 수 있으니 주의할 것

0개의 댓글

관련 채용 정보