2017-03-07 1 views
1

Existe-t-il un moyen de refactoriser l'objet rootQuery en créant plusieurs objets rootQuery et de les combiner dans le schéma?Plus d'un objet rootQuery dans GraphQL

donc pour l'instant nous avons comme un rootQuery plein de racines multiples et ensuite nous faisons un schéma en disant que nous avons cette racine une requête. Ce que nous écrivons est

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

Ce que je veux que serait

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

est-il un moyen que je peux le faire en GraphQL? cela aidera le refactor.

Répondre

3

Non il ne peut pas, GraphQLSchemaqueryType accepte seulement GraphQLObjectType qui est RootQuery, il ne peut pas être arrayType avec plusieurs GraphQLObjectType

Tous les types de vos devraient être déclarés dans la principale queryType qui est RootQuery

est en dessous du code source de 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 } 
    };