HttpEntity
public class HttpEntity<T> {
private final HttpHeaders headers;
@Nulladble
private final T body;
}
- HTTP 요청 또는 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 Class
- HTTP 메시지를 편하게 조회 가능
- 해당 Class를 상속받은 RequestEntity, ResponseEntity가 대표적
ResponseEntity
- Spring MVC에서 HTTP 요청에 대한 응답을 제어하는데 사용하는 Class
- HttpEntity를 상속받고 사용자의 HttpRequest에 대한 응답 데이터가 포함된 Class이기 때문에 HttpStatus, HttpHeader, HttpBody를 포함
- Response Body, Header, Status Code를 포함할 수 있어 세밀한 응답 관리 가능
- JSON 또는 XML과 같은 Restful 서비스를 제공하는데 이상적
- HttpMessageConverter를 통해 JSON으로 응답 가능
사용 예시
ResponseEntity<T> response = new ResponseEntity<>(body, headers, status);
- T : ResponseBody의 타입
- body : ResponseBody 객체
- headers : 설정할 HTTP Header
- status : 상태 코드
ResponseEntity Method
- ok()
- HTTP 200 Status Code와 함께 Response를 생성
- 가장 일반적으로 사용
- status()
- HTTP Status Code를 직접 설정
- created()
- HTTP 201 Status Code와 함께 Response를 생성
- 새로운 resource 생성 시 주로 사용
- notFound()
- HTTP 404 Status Code와 함께 Response를 생성
- badRequest()
- HTTP 400 Status Code와 함께 Response를 생성
- noContent()
- HTTP 204Status Code와 함께 Response를 생성
- 삭제 요청이나 업데이트 후 body가 필요 없는 경우에 주로 사용
- accepted()
- HTTP 202 Status Code와 함께 Response를 생성