我正在设置节点中的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
}
}
定义此查询的正确方法是采用type
,country
和currency
的可选参数吗?
答案 0 :(得分:2)
这实际上取决于您希望如何设计API,这个答案没有对错,我不确定是否通常存在正确的方法。
但是,如果您确定自己要描述的方案,那么是的,type
,country
和currency
都应该是可选的,因为您要离开他们在一些问题中。如果您没有将这些选项设为可选项,那么如果您的GraphQL服务器未被传入,则会抛出错误。
另一种选择可能是您将所有这些参数包含在带有可选字段的filter
对象中。此外,type
,currency
和country
可能更好地表示为枚举而不是字符串:)