2017-03-07 4 views
1

複数のrootQueryオブジェクトを作成してスキーマで組み合わせることで、rootQueryオブジェクトをリファクタリングする方法はありますか?GraphQLの複数のrootQueryオブジェクト

今のところ、複数のルートでいっぱいになっているrootQueryが1つあります。次に、この1つのルートクエリがあることを示すスキーマを作成します。私たちが書くことは私がしたいことは

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

ようになる

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

である私はGraphQLでこれを行うことができる方法はありますか?リファクタリングに役立ちます。

答えて

3

ませんそれは、GraphQLSchemaqueryTypeは、それはあなたのタイプのすべてがあるメインqueryTypeに宣言する必要がありますGraphQLObjectType

複数でのArrayTypeにすることはできません、RootQueryあるGraphQLObjectType受け入れることができません以下は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 } 
    }; 
関連する問題