[SpringBoot] ResponseEntity 잘 사용하기

울상냥·2023년 4월 7일
0

SpringBoot

목록 보기
4/11
post-custom-banner

ResponseEntity

ResponseEntity는 HttpEntity를 상속받는 클래스로 HttpStatus, HttpHeaders, HttpBody를 포함한다.

Controller 응답 시에 Response를 직접 제어 할 수 있다는 장점이 있다.


Refactoring 전

ResponseEntity는 제네릭을 사용하여 바디 타입을 명시해 주어야 하는데 .. 타입을 명시하지 않고 사용하고 있었다 (intellij에서도 경고를 주고있다)
바디를 사용하지 않을 때에도 Object 타입으로 명시를 해 주는 것이 좋다고 한다.

또한 빌더패턴으로도 제공하고 있기 때문에 유연성과 가독성 측면에서 생성자 보다는 필더 패턴을 사용하는 것이 이로울 것 같아 리팩토링을 진행하였다!

Refactoring 후

HttpStatus.OK 의 경우 응답메세지는 불필요 한 것 같아 없애 주었다.

바디가 있는 경우 문제는 `HttpStatus.CREATED`에 있었는데 빌더 패턴으로 사용하려고 했을때

ResponseEntity.created()URI를 파라미터로 받고있다..
이는 새롭게 생성된 리소스에 대한 접근 URI를 Location 헤더 값으로 포함시킴으로써 클라이언트 쪽에서 이 정보를 이용해 해당 리소스에 접근할 수 있도록 하기 위함인데
의도에 맞게 사용하는 것이 가장 좋긴 하겠지만.. 현재 프로젝트에서는 필요하지 않기 때문에

ResponseEntity.status(HttpStatus.CREATED) 로 대체 했는데 필요하다면 추후에 수정해야겠다

profile
안되면 되게하라
post-custom-banner

0개의 댓글