2017-06-11 5 views
1

J'utilise GraphQL dans Javascript, et j'aimerais pouvoir passer des arguments à une fonction resolve() dans le champ GraphQLObjectType.Comment passer des arguments pour résoudre une fonction dans un objet GraphQL?

Voici le GraphQLObjectType declaratio:

export const ModelSchema = new GraphQLObjectType({ 
    name: 'Model', 
    description: 'Model information', 
    fields:() => ({ 
    tags: { 
     type: TagList, 
     description: 'Model\'s UUID', 
     async resolve(obj, args) { 
     console.log('args', args); // expecting to see an object 
     }, 
    }, 
    }), 
}); 

Et voici comment je veux interroger dans GraphQLI:

{ 
    getModels(UUIDs:"0AAAA2EFF6677194ED227EE4AAAA8D4A") { 
    total 
    models { 
     tags (limit: 1) { 
     tags { 
      UUID 
      name 
     } 
     } 
    } 
    } 
} 

Je veux être en mesure d'envoyer des paramètres (en Donc, lorsque la fonction resolve() est invoquée, je peux utiliser ce paramètre et limiter la fonction 10 à tags. e résultats, ou faire autre chose.

Comment puis-je le faire?

Merci

Répondre

1

Ok, il a obtenu ... nécessaire d'ajouter args comme ceci:

export const ModelSchema = new GraphQLObjectType({ 
    name: 'Model', 
    description: 'Model information', 
    args: { 
     limit: { 
      type: GraphQLInt, 
     }, 
     }, 
    fields:() => ({ 
    tags: { 
     type: TagList, 
     description: 'Model\'s UUID', 
     async resolve(obj, args) { 
     console.log('args', args); // expecting to see an object 
     }, 
    }, 
    }), 
}); 

Et maintenant il fonctionne.