【问题标题】:more than one rootQuery object in GraphQLGraphQL 中的多个 rootQuery 对象
【发布时间】:2017-07-27 11:28:12
【问题描述】:

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

所以现在我们有一个包含多个根的根查询,然后我们创建一个模式说我们有这个根查询。我们写的是

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

我想要的会是这样的

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

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

【问题讨论】:

    标签: refactoring graphql graphql-js


    【解决方案1】:

    不行,GraphQLSchema queryType 只接受GraphQLObjectTypeRootQuery,不能是ArrayType 有多个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 }
      };
    

    【讨论】:

      猜你喜欢
      • 2016-10-14
      • 2023-01-30
      • 2021-05-26
      • 1970-01-01
      • 2020-02-29
      • 2020-05-27
      • 2019-07-29
      • 2023-03-03
      • 2020-12-23
      相关资源
      最近更新 更多