将参数传递给graphQL查询

我正在努力在节点中设置graphQL架构. / graphql端点通常会被传递的参数命中.

例如,一个API调用可能正在寻找“检查”帐户:

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

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

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

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

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

定义此查询的正确方法是为类型,国家/地区和货币提供可选参数吗?

最佳答案 这实际上取决于你想要如何设计你的API,这个答案没有对错,我不确定是否通常有一个正确的方法.

但是,如果您确定要描述的场景,那么是的,类型,国家和货币都应该是可选的,因为您在某些查询中将它们排除在外.如果你没有使这些可选,那么你的GraphQL服务器如果没有传入则会抛出错误.

另一种选择可能是将所有这些参数包装在带有可选字段的过滤器对象中.此外,类型,货币和国家可能更好地表示为枚举而不是字符串:)

点赞