Spring Boot3 MultipartFile과 json 동시에 받기 (게시판 글 저장)

fever·2024년 6월 5일
0

스프링부트를 공부할 겸 새로운 프로젝트를 진행하고 있다.
맡은 기능이 게시판이라 백에서 crud만들고 프론트 작업 진행하려는데, 논리적으로 맞는데 기능이 안 되는 요상한 일이 벌어졌다.

하지만 분명 내 잘못일 거야...

왜 안되나 이곳저곳 검색한 결과 매개변수를 잘못 쓴 내 잘못이 맞았고 ㅋㅋㅋㅋㅋㅋㅋㅋ 코드를 수정해보았다! 🥲

1. BoardControllerDocs

  • 스웨거를 사용중이고, 직관적으로 보기 위해 인터페이스로 만들었다.
  • @RequestPart 멀티파트 요청의 일부를 컨트롤러 메서드의 매개변수로 받아들이기 위해 사용
  • value로 바인딩 할 수 있게 지정해줘야 함!

2. BoardController

  • MultipartFile라서 IOException 에러처리 필수!
  • 작성하고 나면 해당 작성 글로 이동을 위해 no(id)를 반환했다.

3. BoardService

  • S3를 사용해서 이미지를 저장 중이라 만들어둔 핸들러로 저장을 처리하고 url를 db에 넣는다.
  • 엔티티 빌드는 좀 길어서 메서드 나눠서 작성

4. 결과

  • 포스트맨으로 확인한 결과 s3와 db에 잘 저장되고, 해당 게시글 no도 잘 반환된다.
  • 참고로 포스트맨에서 보낼 때는 RequestPart로 지정한 이름과 key가 같아야 한다.
  • 또한 dto 같은 경우 읽을 수 있게 application/json지정 필수! (안 그러면 타입 오류 뜬다.)


다음에는 다중 파일과 태그 관련해서 기능 구현하고 포스팅 할 예정!

참고 블로그
Spring Controller에서 MultipartFile, Dto를 함께 요청하기

profile
선명한 삶을 살기 위하여

0개의 댓글