Spring

[ Springboot ] ResponseEntity 란

구티맨 2020. 5. 25. 18:23

ResponseEntity 는 헤더와 바디, 상태 코드로 구성되어 있고 http 응답을 나타낼 때 사용 한다.
Http 응답을 편하게 구성하여 보낼 떄 사용 하는 클래스 이다.


ResponseEntity 는 HttpEntity( http 헤더, 바디 ) 를 상속 받았고, HttpStatus 상태 코드를 추가 하였다.
HttpEntity는 HTTP 요청, 응답을 나타내기 위한 entity로 헤더와 바디로 구성되어 있다.

return ResponseEntity.ok().body(userVO);
return ResponseEntity.badRequest().body(userVO);
return ResponseEntity.noContent().body(userVO);

class에서 함수를 이용해 상태코드, 헤더, 바디를 쉽게 생성 가능하다.

public static BodyBuilder badRequest() {
    return status(HttpStatus.BAD_REQUEST);
}

public static BodyBuilder status(HttpStatus status) {
    Assert.notNull(status, "HttpStatus must not be null");
    return new DefaultBuilder(status);
}

public DefaultBuilder(Object statusCode) {
    this.statusCode = statusCode;
}

@Override
public <T> ResponseEntity<T> body(@Nullable T body) {
    return new ResponseEntity<>(body, this.headers, this.statusCode);
}

badRequest를 보면, 상태 코드를 저장한 builder를 리턴해줘서 body를 생성하며 ResponseEntity 를 생성한다.

참조

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/ResponseEntity.html#ResponseEntity-T-org.springframework.util.MultiValueMap-org.springframework.http.HttpStatus-