내 기대:
보내는 값:
{
"userMessage": "message1"
}
받는 값:
true
하지만 자꾸 받아지는 값은 false만 나왔다. 이를 통해 userMessage에 내가 기대했던 대로 message1값만 들어가지 않는다는 것을 알았다.
이와 관련해 @RequestBody에 대해 찾아보니 아래와 같았다.
@RequestBody 어노테이션을 사용하면 request body를 도메인 객체가 아닌 자바 Map 으로도 역직렬화할 수 있다.
즉, 도메인으로 받는 것보다 Map 형식으로 받는 것이 옳다.
수정 전 작성한 Controller 코드
@PostMapping("/result/spam")
public ResponseEntity compareMessages(@RequestBody Map<String,String> userMessage) {
Boolean pac = messageService.compareMessages(userMessage.get("userMessage"));
return ResponseEntity.ok(pac);
}
수정 후 작성한 Controller 코드
@PostMapping("/result/spam")
public ResponseEntity compareMessages(@RequestBody String userMessage) {
Boolean pac = messageService.compareMessages(userMessage.get("userMessage"));
return ResponseEntity.ok(pac);
}