스프링부트를 공부할 겸 새로운 프로젝트를 진행하고 있다.
맡은 기능이 게시판이라 백에서 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를 함께 요청하기