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

refactor : API 요청 함수를 apiClient로 리팩터링 및 학습 미션 중복 업데이트 방지 #229

Merged
merged 5 commits into from
Nov 12, 2024

Conversation

smosco
Copy link
Collaborator

@smosco smosco commented Nov 12, 2024

📄 Description of the PR

  • 기능 설명: 기존 fetch API 요청 함수를 apiClient로 리팩터링하여 코드 중복을 제거하고, API 요청 로직을 통일했습니다.
  • Close [refactor] split fetch logic #222

🔧 What has been changed?

  • 다양한 API 요청 함수를 apiClient를 사용하도록 수정
  • fetch 요청에서 반복되던 헤더 설정과 옵션들을 apiClient로 통합
  • customHeaders 옵션 추가
    • next 서버 패치시 헤더에 직접 쿠키를 넣어줘야 하는 경우 등
  • 모든 API 요청 함수에서 GET, POST, PUT, DELETE 메서드를 apiClient로 처리하도록 변경
  • 리딩 리스닝 콘텐츠 1개 학습 미션 중복 업데이트 방지
    • 기존 코드는 90% 이상이고 미션 상태가 false 인 경우 요청을 보내도록 함
    • 그러나 미션 상태 확인 요청이 오래 걸려 업데이트가 완료되어도 여전히 false인 경우 계속해서 업데이트 요청을 보내는 문제 발생
    • useRef를 활용해 중복 요청 방지
      • missionHasUpdated는 UI와 관련이 없는 데이터이므로 useRef로 관리

📸 Screenshots / GIFs (if applicable)

⚠️ Precaution & Known issues

✅ Checklist

  • UI 브랜치와 함께 테스트하여 이슈 없는지 확인.
  • 함수 이름과 변수 이름이 선언적이고 기능을 명확히 설명하는지 확인.

@smosco smosco self-assigned this Nov 12, 2024
@smosco smosco linked an issue Nov 12, 2024 that may be closed by this pull request
3 tasks
Comment on lines +105 to 106
contentMissionHasUpdated.current = true;
updateMissionStatus({ oneContent: true });
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

p1 : updateMissionStatus가 success한 다음에 contentMissionHasUpdated.current= true;를 수행하는게 더 맞을 것 같습니다. updateMissonStatus가 실패할 가능성도 있으니까요~

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

네 맞아요~ 그런데 지금은 순서를 바꿔도 async가 아니라 순서가 보장되지는 않습니다~ 에러 바운더리 처리할 때 순서 유지될 수 있도록 수정하겠습니다!

Copy link
Collaborator

@godhyzzang godhyzzang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이제 fetch구문도 재사용성 높게 사용할 수 있겠군요 수고하셨습니다~

@godhyzzang godhyzzang merged commit 5d64515 into develop Nov 12, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[refactor] split fetch logic
2 participants