(1) gql context란?
모든 graphql request에서 공유할 수 있는 값. request란, @Query()
, @Mutation()
을 뜻하고, resolver에 있는 @Query
, @Mutation
에서 @Context
로 불러와서 사용할 수 있다. GraphQLModule.forRoot()
에 등록된 context는 매 request마다 호출된다.
(2) context를 사용하는 방법
첫째, GraphQLModule.forRoot()
에서 context를 먼저 등록해줘야 한다.
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver,
autoSchemaFile: true,
context: ({ req }) => ({ user: req['user'] }),
}),
둘째, Resolver에 있는 @Query 에서 @Context를 사용해서 받는다.
@Query(() => Boolean)
me(@Context() context) {
console.log(context.user); // user의 정보를 확인할 수 있음
return true;
}