如何在 GraphQL 中通过过滤器和顺序动态 create/Fetch 数据?
How to create/Fetch data dynamically by filters and order in GraphQL?
我在 graphql + apollo 客户端中创建一个查询,其过滤器和订单可以根据客户在前端的选择而改变。例如:
query (
$orderPart: String!
$wherePart: String!
) {
getProductInfo(
order {$orderPart}
where {$wherePart}
) {
productID
description
size
model
cathegoryNumber
}
其中 $orderPart 将等于“description: DESC”或“productID: ASC”(取决于客户在某个时刻或其他时刻选择的内容)。 $wherePart 将等于“cathegoryNumber: {eq: 12}”或“productID: {eq: 111111}”。
我需要将 order/filter 子句完全作为参数传递。
但是没用。语法错误“语法错误:预期名称,已找到 $”。
所以我的问题是...
有没有办法实现这些动态filters/orders?如何实现此功能?还有其他方法可以实现这种动态过滤器和订单吗?
谢谢。
注意:
在官方文档中,我发现只能传值作为参数:
query (
$orderValue: sortEnumType! = DESC
$whereValue: String! = "description1"
) {
getProductInfo(
order {productID: $orderValue}
where {description: {eq: $whereValue} }
) {
productID
description
size
model
cathegoryNumber
}
但这不是我需要的,因为总是 filters/orders 无法更改。并且每次 (prodyuct:ASC) 第一次,(cathegoryNumber:DESC) 第二次,它们都可能完全不同,等等...
感谢您的帮助,我找到了解决方案。创建模板时使用 apollo 客户端和变量:
let orderValue = 'order {productID: ASC}'; // built dynamically
let whereValue = 'description: {eq: "description1"}'; // built dynamically
document = gql`
query {
getProductInfo(
${orderValue}
${whereValue}
) {
productID
description
size
model
categoryNumber
}
`;
我在 graphql + apollo 客户端中创建一个查询,其过滤器和订单可以根据客户在前端的选择而改变。例如:
query (
$orderPart: String!
$wherePart: String!
) {
getProductInfo(
order {$orderPart}
where {$wherePart}
) {
productID
description
size
model
cathegoryNumber
}
其中 $orderPart 将等于“description: DESC”或“productID: ASC”(取决于客户在某个时刻或其他时刻选择的内容)。 $wherePart 将等于“cathegoryNumber: {eq: 12}”或“productID: {eq: 111111}”。
我需要将 order/filter 子句完全作为参数传递。
但是没用。语法错误“语法错误:预期名称,已找到 $”。
所以我的问题是...
有没有办法实现这些动态filters/orders?如何实现此功能?还有其他方法可以实现这种动态过滤器和订单吗?
谢谢。
注意: 在官方文档中,我发现只能传值作为参数:
query (
$orderValue: sortEnumType! = DESC
$whereValue: String! = "description1"
) {
getProductInfo(
order {productID: $orderValue}
where {description: {eq: $whereValue} }
) {
productID
description
size
model
cathegoryNumber
}
但这不是我需要的,因为总是 filters/orders 无法更改。并且每次 (prodyuct:ASC) 第一次,(cathegoryNumber:DESC) 第二次,它们都可能完全不同,等等...
感谢您的帮助,我找到了解决方案。创建模板时使用 apollo 客户端和变量:
let orderValue = 'order {productID: ASC}'; // built dynamically
let whereValue = 'description: {eq: "description1"}'; // built dynamically
document = gql`
query {
getProductInfo(
${orderValue}
${whereValue}
) {
productID
description
size
model
categoryNumber
}
`;