apoll-cilent 관련된 질문
apoll-cilent 관련된 질문입니다.
질문1. 지금 강의에서는 api url이 한개만 있을 경우인데, 경로가 다 다른 경우는 어떻게 연결을 하나요??
client를 여러개 만들어서 porivder에 담아줘야하나요??
질문2. provider는 꼭 app.jsx를 감싸야하나요?? 아니면 내부 컴토넌트안에서 원하는 컴포넌트를 provider로 감싸도 동일하게 사용이 가능한가요??
답변 2
0
안녕하세요! 경언님!
해당 문제는 크게 2가지의 경우에 따라서 달라질 수 있어요!
1. 한 회사에 2개의 graphql 서버(ex, 마이크로서비스)를 가지고 계신 경우
2. 서로 다른 두 회사의 graphql 서버인 경우
일반적으로 한 회사에 2개의 graphql 서버(ex, 마이크로서비스)를 가지고 계신 경우에, 백엔드에서 api-gateway(graphql-gateway)를 만들고, 해당 gateway 뒷단에 2개의 서버를 배치하는 방식으로 구조를 만듭니다. 그리고 브라우저에서는 게이트웨이로 요청하시면 됩니다!

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





