2017-03-07 17 views
1

有没有一种方法可以通过创建多个rootQuery对象并将它们组合在模式中来重构rootQuery对象?GraphQL中的多个rootQuery对象

所以现在我们有一个rootquot完整的多个根,然后我们做一个模式说我们有这一个根查询。我们写什么是

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

我想会是这样

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

有没有方法可以让我在GraphQL做到这一点?它将有助于重构。

回答

3

没有不能,GraphQLSchemaqueryType只接受GraphQLObjectTypeRootQuery,它不能是数组类型的多GraphQLObjectType

所有的类型,应在主queryType这是声明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 } 
    };