inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)

GraphQL 환경세팅 및 schema 정의

Query 중첩 질문.

해결된 질문

325

노강표

작성한 질문수 44

0

강의 8분부터 schema폴더에서 index,js를 구성하는과정에서 질문드립니다!

 

query ,mutation의 중복을 피하기위해 linkSchema를 정의해서 type Query, type Mutation을 의미없는 값을 설정후에 extend를 사용하면 중복을 피할 수 있다 라고 이해를 했는데 이게 message.js, user.js라는 각각분리된 파일안에서 query가 정의되어도 중복이 발생해서 이렇게 설정해주신건가요??

graphql react rest-api

답변 1

0

정재남

파일(모듈)이 분리되어 있지만,
ApolloServer 인스턴스를 생성할 때에는 하나의 배열로 합쳐진상태로 typeDefs를 전달하게 됩니다.
이 때 ApolloServer는 배열 내의 정의들을 하나로 병합하게 되는데,
그 과정에서 extend하지 않은 채 동일한 네이밍으로 정의된 type들은 cascading됩니다.
즉 Query, Mutation이라는 동일한 타입명들은 전부 덮어씌워져서, 마지막 하나만 살아남게 되는거죠.

반면 extend type은 기존에 정의된 type에 대해 내용을 '추가'하는 개념이기 때문에
병합하는 과정에서 '덮어씌우'는 대신 기존 type이 확장되게 됩니다.

더 자세한 내용은 다음 링크의 "Extending types in multiple files" 챕터를 참고하세요.

https://www.apollographql.com/blog/backend/schema-design/modularizing-your-graphql-schema-code/

0

노강표

아하...그러면 예를들어서 messages.js에서 Query를 선언하지 않았는데 extend type Query를 선언할 수 있는것도 ApolloServer 인스턴스를 생성할떄 하나의 배열로 합쳐지니까 그떄  index.js 에서 선언한Query를 extend 하게되는거죠? 

0

정재남

맞습니다.

질문있습니다 !

0

134

2

sass 오류

0

174

1

does not match

0

164

2

프로젝트 배포

0

299

1

코드 똑같이 쳤는데 scss 적용이 안돼요 ㅠㅠ

0

748

1

scss 스타일 적용

0

478

2

yarn run client시 에러는 안 나는데 호스트가 열리질 않습니다 ㅠㅠ

0

430

1

무한 스크롤 관련 질문 드립니다.

1

513

2

props 를 넘겨줄 때 함수를 그대로 넘겨줄 때와 화살표 함수로 감싸서 넘겨줄 때의 차이가 궁금합니다 :)

0

454

1

getInitialProps 과 getServerSideProps에 대해서 질문드립니다!

0

1144

1

node-sass를 했을 때 에러가 발생합니다.

0

377

1

[소스 다운로드 안됩니다]

0

323

1

rendered HTML error 관련

2

2187

2

닉네임 부분이 잘못되어 있는 것 같습니다.

0

448

2

Typescript 질문드려요!

0

332

1

error 관련하여

1

289

1

질문이 있습니다!.

0

278

1

질문이 있습니다!

0

486

1

수정된 내용까지 확인했는데 에러가 납니다 ㅠ

1

303

2

React Hydration Error 가 나는 이유가 무엇일까요 ?;;

0

631

1

useRef를 선호하시는 이유가 궁금합니다!

1

794

1

react-query 4.0.0 버전에선 에러가 납니다

0

668

1

gql 백틱 안에 색깔 입혀지는 확장프로그램이 어떤건지 알 수 있을까요?

2

685

1

typeScript에 대한 질문을 어디다가 올려야할지 몰라서 여기다가 남깁니다!

0

303

1