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 하게 설계하는 것은 간단한 것도 힘든 것 같다. 처음이라 그런가?
그래도 빨리 익숙해지고 퀄리티 있는 프로젝트로 거듭나게 할 것이다!!
이제 로그인 만들어야지..ㅎㅎ
다음 고민사항 : 세션이냐 토큰이냐?
반응형
'📕 Spring Framework > Spring Project' 카테고리의 다른 글
2022.05.16 「리팩토링」 (0) | 2022.05.16 |
---|---|
2022.05.14 「JWT 인증」 (0) | 2022.05.14 |
2022.05.11 「SHA-256 + Salt & 인증」 (0) | 2022.05.11 |
2022.05.10 「Rest Ful Api & DTO,VO mapping & Mysql Index & 상수화」 (0) | 2022.05.10 |
2022.05.06 「Git Flow 이슈」 (0) | 2022.05.06 |