-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
api version library 적용 #84
Conversation
*/ | ||
@Deprecated(since = "1.4.0") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
만드신 라이브러리 리드미를 확인했지만 설명이 더 추가되면 좋을 것 같아요 ~
필요한 이유와 https://github.com/apiversion("1") 어노테이션이 어떤 역할을 하는지 정도만 간단히 정리해두면 좋을 것 같습니다. 😄
@apiversion("1")을 추가한 아래 loginKakaoV1 메서드와 동일한 기능을 제공하는데 decrecated 시키는 이유가 궁금해요 ! decrecated 시키지 않고, @apiversion("1")으로 변경하는 건 어떨까요 ?
아래 loginNaver,reissue 등 모든 메서드 포함!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
모든 컨트롤러의 모든 메서드가 2개씩 존재해요
전부 중복으로 생성한 이유는 현재 안드로이드에서 버전없는 api를 바라보고 있고 해당 api에 바로 수정이 이루어질 경우 서버가 업데이트됐을 때 싱크가 맞지 않기 때문이에요 따라서 쿼카가 엔드포인트 변경을 모두 마치면 @Deprecated
어노테이션이 적용된 메서드는 삭제될 겁니다
앞으로 서버에서의 api 스펙 변경은 /api/v1/...
, /api/v2/...
식으로 버저닝을 통해 관리됩니다
예를 들어 안드로이드에서 /api/v1/user/signup
엔드포인트와 연결되어 있고 서버에서 해당 api 스펙에 수정이 발생할 경우,/api/v2/user/signup
에 수정 사항을 반영하고 두 엔드포인트를 같이 운영해서 안드로이드의 업데이트와 관계없이 서버를 배포해요 안드로이드에서 v2로 업데이트를 완료하면 v1은 삭제합니다
@@ -15,11 +16,11 @@ | |||
* @since 1.1.0 | |||
*/ | |||
|
|||
@EnableScheduling |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
P3 ) @EnableScheduling 어노테이션이 DangjangApplication 클래스에 추가되어 있는데, 다시 추가하신 이유가 궁금해요 !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
메인 클래스에 있는 것을 옮긴거에요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
수고했어요 테오 ~
Changes 📝
Details 🌼
API version library
https://github.com/GIVEN53/api-versioning-library
자세한 구현 내용은 링크에서 확인할 수 있습니다!
API 스펙이 변경될 경우 (ex. request body, end point, ...) 이전 메서드는 남겨두고 새로운 메서드에
@ApiVersion("1")
와 같은 어노테이션을 추가하면 돼요클래스, 메서드 모두 적용할 수 있고 둘 다 있을 경우 메서드에 있는 어노테이션이 우선됩니다.
현재 api 버저닝이 하나도 되어 있지 않아서 쿼카와 협업해서 하나씩 전환해야 해요
과도기 상태라 controller class, SecurityConfig에 중복된 코드가 많은데 전환이 끝나면 모두 제거될 예정입니다
추가로 버저닝된 api는 테스트가 없어서 SonarQube 실패해요 엔드포인트 변경때문에 13개의 테스트 클래스를 모두 손보기가 좀 그래서 냅뒀습니다! 작동 여부는 다 확인했기 때문에 prod 선반영하고 전환 마무리되면 테스트 수정하면 될 것 같아요
고민
모두 전환 후 할 일
@ApiVersion
클래스 레벨로 이동Check List ☑️