ResponseEntity<Type>:
Type:HTTP Response Body( =ResponseEntity.body(input))에 포함될Data type
。HttpEntity<T>를확장한클래스로서HTTP Response를 다룰 때 사용하는클래스
▶HTTP Status Code,Header,HTTP Response Body를 포함하여 임의 설정이 가능.
。Controller Method의 반환값으로ResponseEntity 객체를 설정 시Spring이 자동으로Jackson을 통해JSON Conversion을 수행하여HTTP Response로 반환
▶@Controller Class에서 반환하더라도@ResponseBody를 따로 선언할 필요는 없다.
。REST API에서 에러처리,Status Code,Custom Response를 쉽게 수행.
▶ 기존HttpEntity<T>의header와body를 포함하면서 추가적으로Http Status Code를 지정 가능
HttpEntity<T>:
。Spring Framework에서 제공하는HTTP Request,Http Response를 표현하는클래스
▶Request나Response에서 사용 가능한Http Message의Http Header,Http Body를 포함할 수 있음.
▶ 주로Http Request Body를 포함 시 사용.
ResponseEntity의Response Status별Static Method
。Java Stream처럼ResponseEntity를 각method를 활용해chain처럼 설정을 수행 후 마지막에build()를 통해 최종설정된ResponseEntity객체를빌드
▶빌드된ResponseEntity객체는Controller에서클라이언트로 반환
ResponseEntity.ok("Response Body내용"):
。ResponseEntity의HTTP 200 OKStatus Code와 함께Response Body내용의"문자열"을 반환.
ResponseEntity.noContent():
。HTTP 204 No Content설정.
▶204: Client의HTTP Request를 처리했으나,HTTP Response할 데이터가 존재하지 않음.
ResponseEntity.badRequest():
。HTTP 400 Bad Request설정.
ResponseEnity.notFound():
。HTTP 404 Not Found설정.
ResponseEntity.internalServerError():
。HTTP 500 Internal Server Error설정.
ResponseEntity.status(HttpStatus객체.HTTP메서드):
。ResponseEntity에HTTP Status Code를 설정.
▶HttpStatus.CREATED:201
ResponseEntity.headers(HttpHeaders객체):
。HttpHeaders 객체를Custom한 후 추가하여커스텀 헤더추가 가능.
ResponseEntity.body(Response Body내용):
。ResponseEntity에서클라이언트에게 반환 시Response Body에 들어갈 내용을 정의.
ResponseEntity.build():
。최종설정된ResponseEntity 객체를 생성.
▶ResponseEntity.notFound().build():HTTP 404 Not Found설정된ResponseEntity생성.