본문 바로가기
📕 Spring Framework/Spring Project

2022.05.12 「ResponseEntity body & BuilderPattern & Join」

by GroovyArea 2022. 5. 12.
Restful 한 api를 설계하는 것은 참 까다로운 것 같다. 학원에서 완전 기초적인 내용만 배운 것도 있었고 그 부분만 머릿속에 깊이 저장되어 있었기 때문에 제대로 된 rest 방식은 다른 것임을 이해하는데 시간이 너무 오래 걸렸다.
회원 가입, 로그인만 하더라도 어떻게 보면 누군가에겐 별게 아닐테지만 어떤 식으로 생각을 하며 설계를 하느냐에 따라 시간이 오래 걸리는 것 같다. 어제 한 비밀번호 암호화도 마찬가지다.
특히 restful한 방식으로 설계를 하는 것은 처음 해보기 때문에 더 낯설고 이해가 잘 안 되었다.
보통 Return Type인 ResponseEntity를 사용해 응답 관련 정보를 돌려주는데 헤더와 바디에 적절한 데이터를 넣어주는 걸 고르는 게 쉽지 않았다. 
오늘도 아침부터 지금 오후 3시까지 Rest를 계속 공부하다 겨우 회원가입 하나 완성했다.. 정리해보겠다.

 Header와 Body

Http 헤더는 Body 및 요청/응답에 대한 정보를 포함한다.

본문에 대한 정보는 본문 콘텐츠와 연관이 있다.

 

이름 : 값 형식

 

Http 바디는 가져올 실제 데이터 콘텐츠/메시지 본문이다. 

요청한 리소스에 따라 HTML, File, Css, JavaScript, Json 등등 포함 가능

 

나는 어떻게 했느냐?

헤더에 contenttype을 json으로 넘겨줬다

바디에 Message 객체를 담아 줬다 

Message 객체 => Builder Pattern 이용

메시지 클래스 객체 : 응답 데이터와 응답 메시지

응답 메시지는 enum을 이용했다.

 

헤더 정보도 Application/Json을 넣고 싶었는데 계속 에러 메시지가 뜬다..

no converter found for return value of type

=> 이게 뜨는데 이건 body로 넘길 data getter가 없기 때문에 만들어주니 해결!

상태 코드와 데이터가 json 형식으로 잘 넘어오는 걸 확인 가능하다.

 

결론

restful 하게 설계하는 것은 간단한 것도 힘든 것 같다. 처음이라 그런가?

그래도 빨리 익숙해지고 퀄리티 있는 프로젝트로 거듭나게 할 것이다!!

이제 로그인 만들어야지..ㅎㅎ

다음 고민사항 : 세션이냐 토큰이냐?

반응형