ResponseEntity

소프트웨어 마에스트로 14기 팀 프로젝트에서 나는 백엔드 파트를 담당하여 Spring Boot를 통한 API 서버 개발을 하게 되었다. 이를 위해 학습 차 게시글을 작성하게 되었다.


HTTP & RESTful API

  들어가기에 앞서 HTTP와 RESTful API가 무엇인지 모르는 사람들은 이 문서를 읽어보기를 권한다.

Response Entity

정의

  Spring Framework에서는 HttpEntity라는 클래스를 제공한다. HTTP Request(요청)HTTP Response(응답)에 해당하는 HttpHeaderHttpBody를 포함하는 클래스이다.

public class HttpEntity<T> {

	private final HttpHeaders headers;

	@Nullable
	private final T body;
}
public class RequestEntity<T> extends HttpEntity<T>
public class ResponseEntity<T> extends HttpEntity<T>

  HttpEntity 클래스를 상속받아 구현한 클래스가 RequestEntity, ResponseEntity 클래스이다. ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스이다. 따라서 HttpStatus, HttpHeaders, HttpBody를 포함한다.

생성자

  ResponseEntity의 생성자를 보면 this()를 통해 매개변수가 3개인 생성자를 호출하여, 아래 보이는 매개변수가 3개인 생성자로 가게 된다.

public ResponseEntity(HttpStatus status) {
	this(null, null, status);
}
public ResponseEntity(@Nullable T body, HttpStatus status) {
	this(body, null, status);
}

  매개변수 3개인 생성자는 다음과 같다.

new ResponseEntity<>(message, headers, HttpStatus.OK);
  • message : 반환할 임의의 메시지 객체
  • headers : 반환할 HTTP 헤더
  • HttpStatus : 반환할 HTTP 응답코드

Reference