SpringBoot ResponseEntity& @ResponseStatus 사용법

mooh2jj·2022년 3월 17일
0

SpringBoot

목록 보기
21/35
post-thumbnail

일반적으로 REST API를 만들게 되면 SpringBoot에서는 @RestController를 이용하여 JSON 형식으로 값을 반환하게 됩니다. 일반적으로 데이터를 반환할 때 StatusCode까지 넘겨주는 방식이 ResponseEntity 그리고 @ResponseStatus 가 있습니다.


ResponseEntity의 HttpEntity 상속

ResponseEntity는 HTTP 요청에 의한 HttpStatus, HttpHeader와 HttpBody를 포함하는 HttpEntity 클래스를 상속받습니다.

헤더바디, 상태 코드 로 구성되어 있고 http 응답을 나타낼 때 사용

HttpEntity( http 헤더, 바디 ) 를 상속 받았고, HttpStatus 상태 코드를 추가 할 수 있습니다.

예시

return new ResponseEntity<>(dto, header, HttpStatus.OK);
// 주로 create
// ex. return new ResponseEntity<>(dto, HttpStatus.CREATED);

or

return ResponseEntity.ok(dto);	// HttpStatus.OK

or

public static ResponseEntity error(HttpHeaders headers, int statusCode, int errorCode, String message, Object data, DialogDto dialogDto, String execuse) {
      return ResponseEntity
                .status(statusCode)
                .headers(headers)
                .body(Dto.builder()
                        .code(errorCode)
                        .message(message)
                        .data(data)
                        .dialog(dialogDto)                   
                        .build());

이렇게 ResponseEntity<>(dto, header, HttpStatus.OK);로 컨트롤 할 수 있습니다.


@ResponseStatus

ResponseEntity 객체 대신 StatusCode를 retuen하고 싶을 때 방법이 또 한가지 있습니다. 바로 @ResponseStatus를 사용하는 것입니다.

파라미터로 HttpStatus 객체를 가져와 StatusCode를 보내줄 수 있습니다.

@GetMapping
@ResponseStatus(HttpStatus.OK)
public String isOk(){
	return okService.getAll();
}

참고

profile
배운 것을 기록합니다.

0개의 댓글