如何传递参数来解析GraphQL对象中的函数?

时间:2017-06-11 15:32:43

标签: arguments subquery schema graphql resolve

我在Javascript中使用GraphQL,我希望能够将参数传递给resolve()字段中的GraphQLObjectType函数。

这是GraphQLObjectType声明:

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
      },
    },
  }),
});

以下是我想在GraphQLI中查询的方法:

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

所以我希望能够将参数(在本例中为limit)发送到tags,这样当调用resolve()函数时,我可以使用此参数并限制结果,或做其他事情。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:1)

好的,得到它......需要像这样添加args

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
      },
    },
  }),
});

现在它有效。