2017-03-07 5 views
1

하나 이상의 rootQuery 객체를 생성하고이를 스키마에서 함께 결합하여 rootQuery 객체를 리팩토링 할 수있는 방법이 있습니까?GraphQL에서 둘 이상의 rootQuery 객체

그래서 이제는 여러 개의 루트로 구성된 하나의 rootQuery를 가지며이 루트 쿼리가 있다고 말하는 스키마를 만듭니다.

var schema = new GraphQLSchema({ 
query: RootQuery 
}) 

내가 GraphQL에서이 작업을 수행 할 수있는 방법은 내가

var schema = new GraphQLSchema({ 
query: [RootQuery1, RootQuery2] 
}) 

같은 것 싶지가 우리가 쓰기인가? 그것은 리팩터링에 도움이 될 것입니다.

답변

3

없음 그것은, GraphQLSchemaqueryType 만 그것은 당신의 유형은 모두가 메인 queryType에 선언해야 GraphQLObjectType

여러으로 ArrayType 될 수 없습니다 RootQueryGraphQLObjectType 수용 할 수 다음은

RootQuery는 GraphQLSchema

의 소스 코드

https://github.com/graphql/graphql-js/blob/master/src/type/schema.js#L58

입니다
export class GraphQLSchema { 
    _queryType: GraphQLObjectType; // accepts GraphQLObjectType not array 
    _mutationType: ?GraphQLObjectType; 
    _subscriptionType: ?GraphQLObjectType; 
    _directives: Array<GraphQLDirective>; 
    _typeMap: TypeMap; 
    _implementations: { [interfaceName: string]: Array<GraphQLObjectType> }; 
    _possibleTypeMap: ?{ 
    [abstractName: string]: { [possibleName: string]: boolean } 
    };