ResponseEntity

dalBeen·2023년 10월 1일
0

스프링

목록 보기
5/14

ResponseEntity

Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스

  • HTTP응답을 표현하는 클래스
  • 상태코드, 헤더, 본문을 포함할 수 있음
    -> 보다 세밀한 HTTP응답을 구성가능
  1. Generics: ResponseEntity는 제네릭을 사용하여 응답 본문의 타입을 정의합니다.
  2. 상태 코드: HTTP 상태 코드 (예: HttpStatus.OK, HttpStatus.NOT_FOUND 등)를 설정할 수 있습니다.
  3. 헤더: HTTP 응답 헤더를 추가할 수 있습니다.
  4. 본문: 응답의 본문을 설정할 수 있습니다.
@GetMapping("/simple")
public ResponseEntity<String> simpleResponse() {
    return new ResponseEntity<>("Hello, World!", HttpStatus.OK);
}

@GetMapping()
public ResponseEntity<?> searchCompany(){
     List<CompanyEntity> companies = companyService.getAllCompany();
     return ResponseEntity.ok(companies);
}

@GetMapping("/withHeader")
public ResponseEntity<String> responseWithHeader() {
    HttpHeaders headers = new HttpHeaders();
    headers.add("Custom-Header", "CustomHeaderValue");

    return new ResponseEntity<>("Hello with Header!", headers, HttpStatus.OK);
}

@GetMapping("/item/{id}")
public ResponseEntity<Item> getItem(@PathVariable Long id) {
    Item item = itemService.findItem(id);
    if (item == null) {
        return new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }
    return new ResponseEntity<>(item, HttpStatus.OK);
}

만약 ReponseEntity를 사용하지않는 경우 데이터를 어떻게 body에 담아 보낼까?

바로 MessageConverter

@RequestBody, @ResponseBody가 붙은 곳에서 객체를 HttpMessage로 자동으로 변환해준다.

profile
깊게 공부해보자

0개의 댓글