Skip to content
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

[Feature] API 설계를 개선한다 #157

Closed
1 task done
seungki1011 opened this issue Dec 25, 2024 · 0 comments
Closed
1 task done

[Feature] API 설계를 개선한다 #157

seungki1011 opened this issue Dec 25, 2024 · 0 comments
Assignees
Labels
feature New feature or request

Comments

@seungki1011
Copy link
Owner

seungki1011 commented Dec 25, 2024

🚀 설명

  • 워크스페이스 내 멤버 리소스에 접근하는 방법을 변경한다
  • (AsIs): /workspaces/{code}/members/{memberId}
    • 내가 아닌 남을 변경하는 경우 명시적으로 memberId를 제공
  • (AsIs): /workspaces/{code}/members, 파라미터 - @ResolveLoginMember loginMemberId
    • 세션에서 로그인된 멤버의 idloginMemberId라는 파라미터에 제공
  • (ToBe): /workspaces/{code}/members/{workspaceMemberId}
    • workspaceMemberId를 통해 리소스에 접근하면 memberId+workspaceCode를 통해 workspaceMember를 접근할 필요가 없음
    • id를 통해 workspaceMember에 접근하면 됨
    • @ResolveLoginMember를 구현했던 것 처럼, ArgumentResolver와 커스텀 애노테이션을 통해서 구현하면 될 듯
    • 애노테이션 이름은 @WorkspaceMemberId로 만들면 될 듯?

💡 추가 사항

  • 워크스페이스 내 멤버(WorkspaceMember)에 접근하는 모든 경우 @RoleRequired를 사용하는 AuthorizationInterceptor의 영향을 받음
  • 그럼 차라리 AuthorizationInterceptor에서 workspaceMemberId를 반환하거나, 세션에 저장해서 사용하는 방식을 사용할 수는 없나?
    • -> HttpServletRequestreqeust 속성에 저장해서 사용하는 방법
      • request의 생명주기는 API 요청이 들어가고 응답을 받을때 까지 살아있음
      • 명시적으로 관리해줄 필요 없음, API 요청이 끝나면 알아서 정리 됨
    • request의 속성에서 workspaceMemberId를 저장하고 꺼내서 사용하는 방법은, AuditorAware를 통해 memberId 대신 workspaceMemberId를 저장해서 사용하는 것에 적용 가능 할 듯

✅ 작업 항목

  • API 설계를 개선한다(리소스 접근 방법 개선)

🚩 관련 이슈, PR


📖 참고

@seungki1011 seungki1011 added the feature New feature or request label Dec 25, 2024
@seungki1011 seungki1011 self-assigned this Dec 25, 2024
seungki1011 added a commit that referenced this issue Dec 27, 2024
Feat/#157 `WorkspaceMember` 리소스 접근 방법 개선
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant