GraphQL中有多个rootQuery对象

时间:2017-03-07 10:00:42

标签: refactoring graphql graphql-js

有没有办法可以通过创建多个rootQuery对象来重构rootQuery对象并将它们组合在一起?

所以现在我们有一个rootQuery充满了多个根,然后我们创建了一个模式,说我们有一个根查询。我们写的是

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

我想要的是什么

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

有没有办法在GraphQL中执行此操作?它将有助于重构。

1 个答案:

答案 0 :(得分:5)

它不能GraphQLSchema queryType只接受GraphQLObjectType RootQuery,它不能接受GraphQLObjectType是具有多个queryType

的ArrayType

所有类型都应在主RootQuery 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 } };

中声明

以下是GraphQLSchema的源代​​码

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

{{1}}