将参数传递给 graphQL 查询
Passing arguments to graphQL query
我正在努力在节点中设置 graphQL 模式。 /graphql
端点通常会被传递的参数命中。
例如,一个 API 呼叫可能正在寻找 "checking" 个帐户:
query {
accounts(type: "checking") {
id
type
country
currency
}
}
另一个可能正在寻找 "US" 中的所有帐户:
query {
accounts(country: "US") {
id
type
country
currency
}
}
...还有一个人可能正在 "UK" 中寻找 "savings" 账户,以 "GBP" 计价:
query {
accounts(type: "savings", country: "UK", currency: "GBP") {
id
type
country
currency
}
}
是否将此查询定义为采用 type
、country
和 currency
的可选参数的正确方法?
这真的取决于你想如何设计你的 API,这个答案没有对错之分,我不确定通常是否有 正确的[=24] =] 方法。
但是,如果您对所描述的情况有把握,那么是的,type
、country
和 currency
都应该是可选的,因为您将它们排除在外在一些查询中。如果您没有将它们设为可选,那么如果它们未传入,您的 GraphQL 服务器将抛出错误。
另一种选择是将所有这些参数包装在一个带有可选字段的 filter
对象中。此外,type
、currency
和 country
可能更好地表示为枚举而不是字符串 :)
我正在努力在节点中设置 graphQL 模式。 /graphql
端点通常会被传递的参数命中。
例如,一个 API 呼叫可能正在寻找 "checking" 个帐户:
query {
accounts(type: "checking") {
id
type
country
currency
}
}
另一个可能正在寻找 "US" 中的所有帐户:
query {
accounts(country: "US") {
id
type
country
currency
}
}
...还有一个人可能正在 "UK" 中寻找 "savings" 账户,以 "GBP" 计价:
query {
accounts(type: "savings", country: "UK", currency: "GBP") {
id
type
country
currency
}
}
是否将此查询定义为采用 type
、country
和 currency
的可选参数的正确方法?
这真的取决于你想如何设计你的 API,这个答案没有对错之分,我不确定通常是否有 正确的[=24] =] 方法。
但是,如果您对所描述的情况有把握,那么是的,type
、country
和 currency
都应该是可选的,因为您将它们排除在外在一些查询中。如果您没有将它们设为可选,那么如果它们未传入,您的 GraphQL 服务器将抛出错误。
另一种选择是将所有这些参数包装在一个带有可选字段的 filter
对象中。此外,type
、currency
和 country
可能更好地表示为枚举而不是字符串 :)