将参数传递给graphQL查询

时间:2017-04-28 23:59:23

标签: graphql graphql-js

我正在设置节点中的graphQL架构。 /graphql端点通常会被传递的参数命中。 例如,一个API调用可能正在寻找“检查”帐户:

query {
  accounts(type: "checking") {
    id
    type
    country
    currency
  }
}

另一个人可能正在寻找“美国”中的所有帐户:

query {
  accounts(country: "US") {
    id
    type
    country
    currency
  }
}

......而另一个人可能会在“英国”中寻找以“英镑”计价的“储蓄”账户:

query {
  accounts(type: "savings", country: "UK", currency: "GBP") {
    id
    type
    country
    currency
  }
}

定义此查询的正确方法是采用typecountrycurrency的可选参数吗?

1 个答案:

答案 0 :(得分:2)

这实际上取决于您希望如何设计API,这个答案没有对错,我不确定是否通常存在正确的方法。

但是,如果您确定自己要描述的方案,那么是的,typecountrycurrency都应该是可选的,因为您要离开他们在一些问题中。如果您没有将这些选项设为可选项,那么如果您的GraphQL服务器未被传入,则会抛出错误。

另一种选择可能是您将所有这些参数包含在带有可选字段的filter对象中。此外,typecurrencycountry可能更好地表示为枚举而不是字符串:)