- 초보개발자로써 잘못된 정보를 올릴 수 있으니 잘못된 점 바로잡아주시면 감사하겠습니다! -
ResponseEntity란?
ResponseEntity란, httpentity를 상속받는, 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스이다.
ResponseEntity에는 사용자의 HttpRequest에 대한 응답 데이터가 포함된다.
구현된 인터페이스를 보면 파라미터 값에 <바디, 헤더, 상태코드> 형태로된 생성자가 있습니다.
Body => 데이터 값이 들어가는 곳(json 형태로 front에서 받을 수 있음)
Header => 웹서버가 웹브라우저에 응답하는 메세지(status 값 즉 성공했는지 여부 200,400 등의 메세지)
ResponseEntity의 사용방법 및 예시
저는 보통 생성자를 이용하여 ResponseEntity 객체를 사용합니다.
@PostMapping("/test")
public ResponseEntity<SetLikeDto.Response> test(@RequestBody TestDTO testDTO){
TestData data = testService.testMethod(testDTO);
return new ResponseEntity<>(HttpStatus.OK);
return new ResponseEntity<>(data, HttpStatus.ACCEPTED);
//지금은 header에 빈 값이 들어간, 비어있는 객체 -> 필요하다면 내용을 채워서 이렇게 생성해줄 수 있다.
return new ResponseEntity<>(data, new HttpHeaders(HttpHeaders.EMPTY), HttpStatus.ACCEPTED);
}
결론
ResponseEntity 클래스를 사용하면, 결과값! 상태코드! 헤더값!을 모두 프론트에 넘겨줄 수 있고, 에러코드 또한 섬세하게 설정해서 보내줄 수 있다는 장점이 있다!
추가사항
2023.03.12 업데이트
공부하다가 알게된 사실인데 위의 예제코드 여태 ResponseEntity 객체를 생성자 형태로 사용하였지만,
Constructot 형태보다는 Builder 형태로 사용하는 것을 권장한다고 합니다.
// 생성자 형태
return new ResponseEntity<MoveResponseDto>(moveResponseDto, headers, HttpStatus.valueOf(200));
// 빌더 형태
return ResponseEntity.ok()
.headers(headers)
.body(moveResponseDto);
'Spring' 카테고리의 다른 글
Spring Security + jwt 사용기(우당탕탕 주의) - 3 (0) | 2023.05.02 |
---|---|
Spring Security + jwt 사용기(우당탕탕 주의) - 2 (0) | 2023.04.04 |
Spring Security + jwt 사용기(우당탕탕 주의) - 1 (0) | 2023.03.31 |
Spring Filter에 대하여 (0) | 2023.03.15 |
MyBatis DTO Mapping 오류 (0) | 2023.02.28 |