쌓고 쌓다

@RequestPart로 JSON과 파일 함께 처리하기 with Multipart 본문

프로그래밍/spring

@RequestPart로 JSON과 파일 함께 처리하기 with Multipart

승민아 2023. 12. 29. 16:11

 

 

form 데이터는 2가지가 존재한다.

  1. application/x-www-form-urlencoded
  2. multipart/form-data

1번은 일반적인 key, value 형태 데이터이며,

2번은 multipart는 파일과함께 다양한 정보들을 다루는 데이터이다.

 

Multipart?

정리하자면. 클라이언트와 서버간에 전송할때 여러 종류의 데이터를 다루기위한 방식이다.

멀티파트 요청에는 여러개의 파트로 나눠지며 각 파트마다 데이터를 포함할 수 있다.

각 파트는 헤더와 바디로 이뤄진다. 파트에는 메타 데이터, 바디에는 실제 데이터가 포함된다.

 

POSTMAN으로 다음과 같이 JSON과 파일을 같이 전송할 수 있다. 이것을 서버에서 처리해주면 되는것이다.

POSTMAN

 

@RequestPart?

기존에 사용하던 @RequestParam은 key, value의 form에 사용되는 반면

@RequestPart는 더 복잡한 데이터(Part)들을 다루는 multipart/form-data에 적절하며 파일 추출때 유용하게 사용하는 어노테이션이다.

 

다음과 같이 form-data로 전송된 JSON과 파일을 @RequestPart로 받을 수 있다.

@PostMapping("/inquirys")
public void addInquiry(@RequestPart Inquiry inquiry, @RequestPart(required = false) List<MultipartFile> files) throws IOException {
    System.out.println("inquiry = " + inquiry);
    System.out.println("files = " + files);
    ...
}
Comments