참고 : https://itvillage.tistory.com/44
ResponseEntity란?
ResponseEntity는 HttpEntity의 확장 클래스로써 HttpStatus 상태 코드를 추가한 전체 HTTP 응답(상태 코드, 헤더 및 본문)을 표현하는 클래스입니다.
응답을 가장 명확하게 내려주는 방법
ResponseEntity를 어디에 사용
- ResponseEntity 클래스는 주로 @Controller 또는 @RestController 애너테이션이 붙은 Controller 클래스의 핸들러 메서드(Handler Method)에서 요청 처리에 대한 응답을 구성하는데 사용
- RestTemplate으로 외부의 API 통신에 대한 응답을 전달 받아서 처리할 경우, 역시 ResponseEntity를 사용
ResponseEntity 사용법
@RestController
@RequestMapping("/v1/coffees")
public class ResponseEntityExample01 {
@PostMapping
public ResponseEntity postCoffee(Coffee coffee) {
// coffee 정보 저장
return new ResponseEntity<>(coffee, HttpStatus.CREATED);
}
}
@RestController
@RequestMapping("/v1/coffees")
public class ResponseEntityExample01 {
@GetMapping("/{coffee-id}")
public ResponseEntity getCoffee(@PathVariable("coffee-id") long coffeeId) {
if (coffeeId < 0) {
return new ResponseEntity<>(
"coffeeId should be greater than 0",
HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(new Coffee(), HttpStatus.OK);
}
@DeleteMapping("/{memberId}")
public ResponseEntity delete(@PathVariable long memberId){
if(members.containsKey(memberId)){
members.remove(memberId);
}else return null;
return ResponseEntity.status(HttpStatus.NO_CONTENT).body(members);
}