ResponseEntity

이용만·2023년 4월 11일
0

참고 : https://itvillage.tistory.com/44

ResponseEntity란?
ResponseEntity는 HttpEntity의 확장 클래스로써 HttpStatus 상태 코드를 추가한 전체 HTTP 응답(상태 코드, 헤더 및 본문)을 표현하는 클래스입니다.
응답을 가장 명확하게 내려주는 방법

ResponseEntity를 어디에 사용

  • ResponseEntity 클래스는 주로 @Controller 또는 @RestController 애너테이션이 붙은 Controller 클래스의 핸들러 메서드(Handler Method)에서 요청 처리에 대한 응답을 구성하는데 사용
  • RestTemplate으로 외부의 API 통신에 대한 응답을 전달 받아서 처리할 경우, 역시 ResponseEntity를 사용

ResponseEntity 사용법

  • 첫번째 방법.
    new로 ResponseEntity 객체를 생성한다.
@RestController
@RequestMapping("/v1/coffees")
public class ResponseEntityExample01 {
    @PostMapping
    public ResponseEntity postCoffee(Coffee coffee) {
 
        // coffee 정보 저장
        
        return new ResponseEntity<>(coffee, HttpStatus.CREATED);
    }
}
  • 두번째 방법
    ResponseEntity 객체를 생성하면서 응답의 body 데이터와 HttpStatus의 상태를 전달
@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);
    }
    
  • 세번째 방법
    HttpStatus 상태를 동적으로 지정하는 예
@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);
    }
profile
성장하는 개발자가 되고자 합니다.

0개의 댓글