Develop
ResponseEntity 기초와 간단한 사용법 본문
Response Entity
: HttpEntity를 상속받아서 구현한 클래스
: HttpRequest에 대한 응답데이터를 포함한 클래스
HttpEntity 는 header(헤더)와 body(바디)를 가지고 있고
ResponseEntity는 status(상태)를 가지고 있다
즉, ResponseEntity는 HttpEntity를 상속받았으므로
HttpHeader(헤더), Httpbody(바디 = 전달정보), Httpstatus(상태) 를 모두 가지고 있다
사용시 3개를 모두 담고있어야 하는건 아니지만
status(상태)는 무조건 있어야한다.
ResponseEntity를 사용하는 이유
- Controller에서 주로 하던 객체return 방식은 Http 응답을 제어할 수 없기 때문에 ResponseEntity를 사용한다.
- Rest API로 만든다면 클라이언트와 서버가 통신할 때 필요한 정보를 제공해야하는데
ResponseEntity를 사용하면 전하고싶은 응답을 전달할 수 있기 때문이다 (상태코드, 응답헤더, 응답본문)
사용 형태
return new ResponseEntity(Httpstatus.Ok);
body없이 Ok라는 상태만 보낸것으로 Ok상태는 200을 뜻하며
주로 성공했을 때 보내는 상태이다.
위의 코드는 new로 생성했지만
new 보다 bulider 패턴을 이용하면 더 유용하다고한다.
1. 유연하게 값 설정 가능
2. 가독성이 좋다
=> ResponseEntity의 생성자가 갖는 매개변수 순서를 외울 필요 없으므로
return ResponseEntity.ok("body Message");
ok메서드를 사용한 것으로 ( 상태가 ok이라는 뜻 즉 200)
body Message 라는 내용이 담긴 body를 상태와 같이 return 한다
if (bindingResult.hasErrors()) {
ErrorResponse errorResponse = new ErrorResponse(ErrorCode.BAD_REQUEST, bindingResult.getFieldErrors());
return ResponseEntity.badRequest().body(errorResponse);
}
유효성 검사시에도 에러가 난 경우에 오류라고 알려주면서 return이 가능하다
badRequest()는 실패할때 보내는 상태로 문제가 있다는 내용과 함께 리턴되므로 콘솔에서도 확인할 수 있다.
'웹 개발 > 이론' 카테고리의 다른 글
[이론] 답글 달기 (0) | 2024.02.22 |
---|