Postman으로 아래의 RestController 테스트하는 과정에 오류가 발생했다.
@PostMapping("/api/post")
public CreatePostResponseDto savePost(@RequestBody @Valid CreatePostRequestDto requestSavePost) {
Post post = new Post(requestSavePost.getTitle(), requestSavePost.getContent());
Long savePostId = postService.save(post);
return new CreatePostResponseDto(savePostId, post.getTitle(), post.getContent());
}
에러로그는 아래와 같다.
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.example.board.dto.post.CreatePostRequestDto` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
원인은... 기본 생성자가 존재하지 않기 때문이다.
정리
HttpMessageConverter에 의해서 동작하려면 기본 생성자와 Setter가 필요한듯 보인다.