graphQL 사용기 정리

HyosikPark·2020년 9월 22일
0

graphql

목록 보기
1/8

> > "Cannot return null for non-nullable field

이 오류에 대한 원인을 찾기위해 1시간을 고생했는데 고작 철자 한개를 빼 먹어서 발생한 오류였다.. typeDefs를 뒤져보고 resolvers의 함수를 뒤져봤는데 잘못된 부분이 없었다. 알고보니 resolvers를 다른파일에서 불러오는 과정에서 철자 하나를 빼먹은것이다. 앞으로 저 오류가 나면 해맬일은 절대 없을것 같다.

Query? Mutation?

graphql 스키마에는 주된 두가지 타입이 있는데 query와 mutation이다. 난 처음에 이 두가지가 사용자가 임의로 지정해준 이름인 줄 알았는데 query문은 보통 rest API에서 get에 해당하는 부분 즉 읽는 값을 작성하는 데에 쓰이며 mutation은 post, patch, update, delete 등 수정하는 값을 작성하는데에 쓰인다.

Resolvers 함수 인자

const resolvers = {Mutation: { createPost(root, args, context ) {} } }

첫번째 인자는 parent resolver가 return한 객체이며 부모 resolover의 값에 따라 현재 값을 조절할 수 있다. args는 입력값 context는 모든 resolver에 전달가능한 값으로 middleware형식으로 사용할 수 있고 여러모로 유용하다.

pubSub

살짝 써봤는데 subscription 타입에서 사용하며 특정 resolver와 실시간으로 연결하여 실시간 통신을 해주는 기능인 것 같다. 실시간 채팅 앱을 구현하는데에 유용할 것 같다. 기회가 되면 써봐야지.

0개의 댓글