GraphQL中有多个rootQuery对象

Cod*_*ort 2 refactoring graphql graphql-js

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

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

var schema = new GraphQLSchema({
 query: RootQuery
})
Run Code Online (Sandbox Code Playgroud)

我想要的是什么样的

var schema = new GraphQLSchema({
 query: [RootQuery1, RootQuery2]
})
Run Code Online (Sandbox Code Playgroud)

有没有办法在GraphQL中做到这一点?它将有助于重构.

p0k*_*k8_ 5

没有它不能,GraphQLSchema queryType只接受一个GraphQLObjectTypeRootQuery,它不能是数组类型的多GraphQLObjectType

所有的类型都应该在main 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 }
  };
Run Code Online (Sandbox Code Playgroud)