본문 바로가기
springboot

[springboot] @ResponseBody vs ResponseEntity

by 개발LOG 2024. 2. 26.

@ResponseBody 어노테이션은 데이터를 클라이언트쪽에 보낼 때 데이터를 JSON 또는 XML 형식으로 직렬화해 반환할 때 사용한다. (이때, 엔티티는 직렬화할 때 문제가 발생하므로 DTO를 따로 만들어서 보내는 것이 좋다.)

따라서 POST, PUT, DELETE 작업같은 경우는 돌려주는 값이 없으므로  ResponseEntity<String>로 리턴타입을 지정해 

성공,실패에 대한 메세지를 담아 리턴해 주는 것이 좋다.

예: return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("수정 권한이 없습니다."); //HTTP 응답코드 401오류


정리하자면,

ajax로 요청이 들어왔을 때,

  • 반환 데이터가 없는 경우(POST, PUT, DELETE): ResponseEntity<String>로 리턴타입 지정하고 성공실패 메세지body에 담아 보내기
  • 반환 데이터가 있는 경우(GET): @ResponseBody 어노테이션을 붙여 반환데이터의 타입으로 리턴타입 지정