Apollo Client의 데이터 플로우를 커스터마이징 하기

만약 어플리케이션이 컨벤션화 된 GraphQL 서버에 HTTP 기반의 요청을 한다면, 해당 Apollo Link API를 사용할 필요는 없습니다. Basic HTTP networking 을 확인하세요.

Apollo Link 라이브러리는 Apollo Client와 GraphQL Server 사이의 데이터 통신 플로우를 커스터마이징 하는데 도움을 줍니다. 당신의 클라이언트 네트워크 행동을 link 객체들의 연쇄 동작으로서 정의함으로서 일련의 동작들을 실행하게 합니다.

Screen Shot 2023-04-26 at 9.14.32 AM.png

각각의 링크들은 수정된 GraphQL 동작 혹은 사이드 이펙트(로깅 등)를 포함하여 나타냅니다.

상단에 있는 다이어그램은 다음과 같습니다.

  1. 첫 번째 링크는 디버깅을 목적으로 한 상세한 로그를 출력합니다.
  2. 두 번째 링크는 외부 요청을 위한 인증 인가 목적의 HTTP 헤더를 더해주는 역할을 수행하니다.
  3. 마지막 (terminating) 링크는 목적지(일반적으로 HTTP를 통한 GraphQL Server)에 쿼리 동작을 보내는 것을 수행합니다.
  4. 서버의 응답을 받을 때는 각각 링크의 역순으로 수행됩니다. 응답을 수정하는 것도 가능하며, 각 데이터가 캐싱되기 전에 특정 액션을 수행시킬 수도 있습니다.

Your first link chain

첫번째 링크 체인

아래 Apollo에서 제공하는 두 가지 링크 체인에 대한 시연 예시가 있습니다.