728x90
@Controller는 MVC패턴에서 View를 반환한다고 한다. 반면, @RestController는 Json 형태의 데이터를 반환한다고 한다.
@RestController에서 ResponseEntity를 반환하는 형태로 사용을 했는데 ResponseEntity에 대해 정리해 놓으면 좋을 것 같아서 기록을 남기려한다.
HttpEntity는 HttpHeader와 body를 가질 수 있다.
ResponseEntity는 HttpEntity를 상속받고, HttpStatus를 가지기 때문에 상태코드를 리턴한다.
// 단순한 메세지와 상태코드 200을 리턴
return new ResponseEntity<>("success", HttpStatus.OK);
// 객체를 응답하고 상태코드를 오류로 반환
Message message = Message.builder()
.message1("첫 번째 메세지입니다.")
.message2("두 번째 메세지입니다.")
.build();
return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR);
// 상태 코드만 리턴
return new ResponseEntity<>(HttpStatus.OK);
// header와 상태코드를 리턴
MultiValueMap<String, String> header = new LinkedMultiValueMap<>();
header.add("AUTHCODE", "xxxxxx");
header.add("TEST", "xxxxx");
return new ResponseEntity(header, HttpStatus.OK);
ResponseEntity는 Client의 요청에 대한 응답을 한 번 더 감싸는 역할을 한다.
Client 개발자는 요청 후 응답 상태코드에 따라 작업을 진행하고, Header 값에 따라 다른 동작을 할 수도 있다.
Reference
728x90
'Spring' 카테고리의 다른 글
DTO, VO, Entity (0) | 2022.09.07 |
---|---|
Builder 패턴 (0) | 2022.09.02 |
Exception 공부 (0) | 2022.08.31 |
RestTemplate, WebClient (0) | 2022.08.24 |
@RequestParam, @PathVariable (0) | 2022.08.19 |