inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

apoll-cilent 관련된 질문

해결된 질문

366

tamo

작성한 질문수 9

0

apoll-cilent 관련된 질문입니다.

질문1. 지금 강의에서는 api url이 한개만 있을 경우인데, 경로가 다 다른 경우는 어떻게 연결을 하나요??
client를 여러개 만들어서 porivder에 담아줘야하나요??

질문2. provider는 꼭 app.jsx를 감싸야하나요?? 아니면 내부 컴토넌트안에서 원하는 컴포넌트를 provider로 감싸도 동일하게 사용이 가능한가요??

react node.js seo graphql next.js

답변 2

1

tamo

감사합니다.

 

0

노원두

안녕하세요! 경언님!

해당 문제는 크게 2가지의 경우에 따라서 달라질 수 있어요!
1. 한 회사에 2개의 graphql 서버(ex, 마이크로서비스)를 가지고 계신 경우
2. 서로 다른 두 회사의 graphql 서버인 경우

일반적으로 한 회사에 2개의 graphql 서버(ex, 마이크로서비스)를 가지고 계신 경우에, 백엔드에서 api-gateway(graphql-gateway)를 만들고, 해당 gateway 뒷단에 2개의 서버를 배치하는 방식으로 구조를 만듭니다. 그리고 브라우저에서는 게이트웨이로 요청하시면 됩니다!

image

만약, 서로 다른 두 회사의 graphql 서버인 경우에는 자체 api-gateway 백엔드를 구축하기 어려움으로, 브라우저에서 apollo-client 셋팅을 통해 설정하셔야 합니다! 해당 방법으로는 다이나믹URI를 참고해 보시면 좋을 것 같아요!

image참고) https://www.apollographql.com/docs/react/api/link/apollo-link-http/

위 예제를 쉽게 풀면 아래와 같습니다

  const customFetch = (_, options) => { // options => 현재 요청된 그래프큐엘정보

    // options에 들어온 정보를 바탕으로 나만의주소를 변경하기(if문 등 사용)
    const 나만의주소 = "http://backend-practice.codebootcamp.co.kr/graphql"
    return fetch(나만의주소, options); // 요청된 그래프큐엘정보를 담아서 주소만 바꿔 보내기
  };

  const client = new ApolloClient({
    link: new HttpLink({ fetch: customFetch }),
    cache: GLOBAL_STATE,
  });

다만, 이러한 방식을 사용하시는 경우, 이후 뒷부분에서 배우는 apollo-cache를 사용하는데 주의가 필요할 것 같아요!

 

끝으로 마지막 질문에 대한 답변을 드리면,
provider는 어디에 있던 상관이 없습니다! 다만, provider가 감싸고 있는 내부 컴포넌트에서만 요청이 가능해요!

fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다

0

32

1

댓글 기능 구현 중 질문드립니다.

0

63

1

쿠폰코드 발급

0

127

2

example 서버 플레이그라운드, API 접속 모두 안됩니다.

0

84

2

문의드립니다!! ㅠㅠ

0

101

2

graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.

0

75

2

_app.js 작성 이후로 에러가 발생하네요

0

93

2

학습자료

0

68

2

학습자료가 안열립니다.

0

47

2

플레이 그라운드 퀴즈 문제 질문이 있습니다.

0

58

0

기존강의 구매자, 업데이트 끝인가요?

0

107

3

업데이트 버전 수강

0

87

2

완벽한 프론트엔드

0

135

2

나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.

0

80

1

graphql 접속이 안됩니다.

0

99

2

const, let 사용 질문 드립니다.

0

69

2

싸이월드 만들기 1탄 피드백 부탁드립니다.

0

121

2

회원가입 과제 피드백 부탁드립니다.

0

78

2

styled.span / styled.input "CSS 자동완성"

0

46

1

쿠폰 발급 관련

0

165

2

서버 502 error

0

246

2

쿠폰 다시 부탁드려도 될가여?

0

139

2

a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요

0

181

2

2분 44초 질문

0

127

3