-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
2022-07-16
Implementing GraphQL Servers(84p) - Schema Metadata(95p)
Implementing GraphQL Servers
GraphQL Server Basics
- 리졸버는 대개 3-4 개의 인자를 받으며, 예를 들어 아폴로서버는 parent, arguments, context 외에도 Info라는 AST를 넘겨준다.
- context에는 authentication, cache 관련 정보 등이 담기고 context는 request 단위로 명확히 구분되어야 한다.
Code First vs Schema First
- 커스텀 Scalar과 Directive를 잘 사용하자. 비즈니스 로직을 리졸버와 분리하고, GraphQL에서 지원하는 에러/데이터 시스템을 활용할 수 있게 된다.
Resolver Design
- Todo list 프로젝트에서 ODM과 GraphQL 타입을 하나의 클래스에서 동시에 정의했는데, 경우에 따라 분리하는 것이 좋을 수도 있다. GraphQL은 결국 API이며 데이터 소스와는 구분되어야 하기 때문이다.
- context는 매 request 마다 새롭게 생성된다. 아폴로서버의 ApolloServer 생성자에서도 context를 함수로 받고 있는데 이는 매 request마다 새로운 객체를 반환해야 하기 때문이다.
Reactions are currently unavailable