Skip to content

[#648] HTTPCallable 메서드들을 RESTful API화한다#649

Merged
opficdev merged 5 commits into
developfrom
refactor/#648-restful
Jun 27, 2026
Merged

[#648] HTTPCallable 메서드들을 RESTful API화한다#649
opficdev merged 5 commits into
developfrom
refactor/#648-restful

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • Firebase callable functions 직접 호출을 REST API 호출 구조로 전환하기 위한 iOS 클라이언트 계약 정리

📝 작업 내용

📌 요약

  • Firebase Functions callable 의존 제거
  • FunctionAPIClient, FunctionAPIEndpoint 기반 REST API 호출 구조 추가
  • Todo, WebPage, PushNotification 삭제 요청 및 복구 요청 REST API 전환
  • Apple, GitHub 인증 관련 Functions 호출 REST API 전환
  • REST API 에러 응답 매핑 추가
  • WebPage 삭제 및 복구 요청에 실제 Firestore document ID 전달
  • Apple refresh token 저장 요청 body에서 uid 제거

🔍 상세

  • FUNCTION_API_BASE_URLInfo.plist에서 읽도록 구성
  • build configuration별 base URL을 비공개 Config.xcconfig에서 주입하는 구조 유지
  • Nexa 기반 FunctionAPIClient 추가
  • REST API 공통 응답, 빈 응답, 서버 에러 응답 디코딩 처리
  • Firebase ID token 기반 Authorization header 주입 흐름 유지
  • 기존 callable helper 제거
  • WebPage 조회 결과의 실제 document ID를 Domain, Presentation, UseCase, Service 계약까지 전달하도록 정리
  • WebPage 삭제/복구 API path parameter에 URL 기반 재계산 ID가 아닌 실제 document ID 사용
  • Apple refresh token 저장 API body를 서버 계약에 맞게 authorizationCode만 포함하도록 정리
  • Apple custom token 발급 후 Firebase 로그인, Firebase ID token 포함 refresh token 저장 순서 유지

📸 영상 / 이미지 (Optional)

@opficdev opficdev self-assigned this Jun 27, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the application to use a custom API client (FunctionAPIClient powered by Nexa) instead of direct Firebase Functions calls for operations like deletion requests and social login token management. Additionally, web page deletion and undo-deletion logic has been updated to use a unique id instead of the URL string across all layers. The review feedback highlights a performance concern where FunctionAPIClient and its underlying NXAPIClient are instantiated on every request, which can lead to SSL handshake overhead and socket exhaustion; it is recommended to reuse a static shared client instance instead.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread Application/DevLogInfra/Sources/Service/FunctionAPIClient.swift Outdated
Comment thread Application/DevLogInfra/Sources/Service/FunctionAPIClient.swift
@opficdev opficdev merged commit 1abba72 into develop Jun 27, 2026
6 checks passed
@opficdev opficdev deleted the refactor/#648-restful branch June 27, 2026 04:15
@opficdev opficdev added qa TestFlight에 배포된 버전 and removed qa TestFlight에 배포된 버전 labels Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HTTPCallable 메서드들을 RESTful API화한다

1 participant