我在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())
}
})
})
});
答案 0 :(得分:1)
您正在传递silver_bid_usd_toz
作为该字段的参数,但显然您没有在resolve函数中使用它,因此它被忽略。
这似乎是更改参数值时结果始终相同的原因。
但是当你说查询需要工作时很奇怪,因为它没有被定义为GraphQLNonNull
类型。
根据您传递给我们的Schema,应该可以在不传递任何参数的情况下查询此字段。