[spring boot] post request에 DTO 사용할때 데이터 넣어도 null 발생

@PostMapping
public ResponseEntity<Void> saveGame(@Validated @RequestBody GameDto.Request gameDto) {
gameService.saveGame(gameDto);
return ResponseEntity.status(HttpStatus.CREATED).build();
}

위와같이 컨트롤러를 구현한 뒤 postman을 사용해 post request를 요청해 주었는데, 자꾸 데이터가 null로 나오는 문제가 발생했다. 도대체 왜이러나 하면서 빼먹은 부분이 있는지 생각해봤다.

스크린샷 2024-05-05 오전 9.16.43.png

 

이유는 바로 DTO에 setter가 없었던 것이였다. 데이터를 setter를 이용해 객체를 넣기 때문에 setter가 없으면 값을 할당하지 못해 null이 나오는 것으로 생각된다. lombok 사용하면 @Setter로 간단하게 추가할 수 있다.

 

더불어, swagger에도 setter를 추가하기 전까지는 post request 양식이 보이지 않았으나, setter를 추가하니 기본 양식이 추가된 것을 확인할 수 있었다.

스크린샷 2024-05-05 오전 9.17.18.png