查询GraphQL浮点数时,第二个参数代表什么?

时间:2018-06-01 01:55:03

标签: graphql express-graphql

我在GraphQL中进行以下查询:

{
  metal(silver_bid_usd_toz: 1) {
    silver_bid_usd_toz
  }
}

返回

{
  "data": {
    "metal": {
      "silver_bid_usd_toz": 16.45
    }
  }
}

API返回的JSON对象是平的:

{
  silver_bid_usd_toz: 123,
  gold_bid_usd_toz: 123,
  copper_bid_usd_toz: 123
}

我不明白我的graphql查询中的1意味着什么metal(silver_bid_usd_toz: 1)

我将其更改为什么并不重要,它可以是1或355,但查询需要它才能工作。为什么我不能这样做

{
  metal(silver_bid_usd_toz) {
    silver_bid_usd_toz
  }
}

我的架构如下所示:

 module.exports = new GraphQLSchema({
  query: new GraphQLObjectType({
    name: 'Query',
    description: '...',
    fields: () => ({
      metal: {
        type: MetalType,
        args: {
          gold_bid_usd_toz: { type: GraphQLFloat },
          silver_bid_usd_toz: { type: GraphQLFloat }
        },
        resolve: (root, args) => fetch(
          `api_url`
        )
        .then(response => response.json())
      }
    })
  })
});

1 个答案:

答案 0 :(得分:1)

您正在传递silver_bid_usd_toz作为该字段的参数,但显然您没有在resolve函数中使用它,因此它被忽略。

这似乎是更改参数值时结果始终相同的原因。

但是当你说查询需要工作时很奇怪,因为它没有被定义为GraphQLNonNull类型。 根据您传递给我们的Schema,应该可以在不传递任何参数的情况下查询此字段。