Why ResponseEntity ?
- 보통 Backend에서 Request에 대한 요청을 할때, 응답값으로 ResponseEntity를 사용하는 경우가 있다.
- 실제로 응답값을 왜 ResponseEntity를 사용하는지에 대해 물으면 대답을 못하는 사람들이 많다.
- 그렇다면, 왜 ResponseEntity를 사용하는지 알아보자.
ResponseEntity library
- ResponseEntity는 org.springframework.boot:spring-boot-starter-web dependency를 추가하면 추가된다.
ResponseEntity Class Diagram
- 자체적으로 상태값을 가지며 HttpEntity를 상속하여 구현한다.
- 그렇다면 HttpEntity는 어떤값을 가질까
HttpEntity
- HttpEntity는 제네릭클래스로 header값과 body값을 가진다.
- HttpHeaders는 MultiValueMap을 상속한 클래스로 Http로 소통하기 위한 다양한 제약조건들을 변수값으로 가진다.
ResponseEntity
- 다시 ResponseEntity로 돌아오자.
- 위에서 HttpEntity는 header는 다양한 제약조건들을 body는 전송하려는 데이터를 가진다라는것을 알수 있었다.
- 그렇다면 ResponseEntity가 가지는 변수인 status는 무엇을 의미할까?
- 대표적으로 ok라는 메소드를 보자
- 응답값으로 status(HttpStatus.OK)를 반환한다.
- HttpStatus Enum을 따라가 확인해보면 그 값이 200이라는걸 확인할수 있다.
- 즉, Http 전송시에 성공했다라는 응답값을 의미한다라는 걸 확인할수 있다.
결론
- 이제 알수 있다. ResponseEntity가 무엇인지에 대해
- ResponseEntity는 요청에 대한 응답을 보내기 위해 사용하는 객체이자 status, header, body를 가져서 요청에 대한 응답 코드가 무엇인지, 헤더에는 어떤 제약사항들이 들어 있는지, 바디값에는 어떤값이 들어있는지 알수 있게 해주는 객체일뿐이다.
'프레임워크 > Spring boot' 카테고리의 다른 글
Resolver 란? (2) | 2022.09.13 |
---|---|
@Transactional을 선언했을때의 코드 흐름(내부 구조까지) (0) | 2022.08.22 |
Spring Boot는 Run시에 무엇을 할까 - Spring AOP (0) | 2022.08.14 |
Spring 주절주절(지속적 업데이트) (0) | 2022.08.11 |
throws시 어떤 일이 발생될것인가 ? (0) | 2022.08.10 |