有没有办法将复杂的 where 条件定义为变量?
Is there a way define complex where conditions as variables?
我创建了一个 GraphQL 查询,它在 where 条件下变得复杂,但在 Apollo GraphQL iOS 客户端中,无法在编译项目后更改查询。 Apollo GraphQL iOS 客户端有机会更改查询中定义的变量,但不能更改查询本身。
我原来的 Lighthouse GraphQL 查询如下;
query ($first:Int, $page:Int) {
my_listings(
where: {
AND: [
{ column: NET_AREA, operator: GTE, value: 200 }
]
}
orderBy: [
{ column: ID, order: ASC }
]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
修改后的 Lighthouse GraphQL 查询是这样的,只添加了 MyListingsWhereWhereConditions
类型的 $conditions 变量。
query($first: Int, $page: Int, $conditions:MyListingsWhereWhereConditions) {
my_listings(
where: $conditions
orderBy: [{ column: ID, order: ASC }]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
当我将以下变量输入第二个查询 Lighthouse 服务器时 returns 我收到以下消息
{
"first": 1,
"page": 1,
"conditions": {"AND": {"column": "PRICE", "operator": "LTE","value": "190"}}
}
错误信息
Variable \"$conditions\" got invalid value {\"AND\":{\"column\":\"PRICE\",\"operator\":\"LTE\",\"value\":\"190\"}}; Expected type MyListingsWhereWhereConditions to be an object at value.AND.column.
有没有办法在变量中给出这些条件?没有它,我找不到改变 iOS 客户端条件的方法。
“AND”应该包含对象数组,而不是对象。
"conditions": {"AND": [{"column": "PRICE", "operator": "LTE","value": "190"}}]
我创建了一个 GraphQL 查询,它在 where 条件下变得复杂,但在 Apollo GraphQL iOS 客户端中,无法在编译项目后更改查询。 Apollo GraphQL iOS 客户端有机会更改查询中定义的变量,但不能更改查询本身。
我原来的 Lighthouse GraphQL 查询如下;
query ($first:Int, $page:Int) {
my_listings(
where: {
AND: [
{ column: NET_AREA, operator: GTE, value: 200 }
]
}
orderBy: [
{ column: ID, order: ASC }
]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
修改后的 Lighthouse GraphQL 查询是这样的,只添加了 MyListingsWhereWhereConditions
类型的 $conditions 变量。
query($first: Int, $page: Int, $conditions:MyListingsWhereWhereConditions) {
my_listings(
where: $conditions
orderBy: [{ column: ID, order: ASC }]
first: $first
page: $page
) {
data {
...listingFields
}
paginatorInfo {
currentPage
lastPage
}
}
}
当我将以下变量输入第二个查询 Lighthouse 服务器时 returns 我收到以下消息
{
"first": 1,
"page": 1,
"conditions": {"AND": {"column": "PRICE", "operator": "LTE","value": "190"}}
}
错误信息
Variable \"$conditions\" got invalid value {\"AND\":{\"column\":\"PRICE\",\"operator\":\"LTE\",\"value\":\"190\"}}; Expected type MyListingsWhereWhereConditions to be an object at value.AND.column.
有没有办法在变量中给出这些条件?没有它,我找不到改变 iOS 客户端条件的方法。
“AND”应该包含对象数组,而不是对象。
"conditions": {"AND": [{"column": "PRICE", "operator": "LTE","value": "190"}}]