我正在使用Apollo GraphQL,必须调用嵌套查询。但是在.graphql
文件中调用查询时,显示为
语法错误:预期名称,找到{
我必须使用指定的参数调用 getAllproduct {....} 查询。这里的 FilterInput 的参数为 location 以及另一种查询模式,所以我不知道如何调用此嵌套查询。任何人都可以帮助我找出解决方案。谢谢...
答案 0 :(得分:2)
如果参数是输入对象类型(而不是标量),则可以使用大括号将输入对象类型的字段包括在内。
query MyProductsQuery {
allProducts(
pageNumber: "someString"
filter: {
title: "someOtherString"
yearFrom: 1900
location: {
city: "yetAnotherString"
state: "FL"
}
}
) {
id
# other product fields
}
}
当然,在.graphql
文件中对这些值进行硬编码不是很有帮助。您可能希望能够以编程方式交换这些值。所以这是带有变量的相同查询的样子:
query MyProductsQuery($pageNumber: String, $filter: FilterInput) {
allProducts(pageNumber: $pageNumber, filter: $filter) {
id
# other product fields
}
}
您的变量是与查询分开传递的,与您的查询不同,它们不是不是 GraphQL文档。它们只是JSON:
{
"pageNumber": "someString",
"filter": {
"title": "someOtherString",
"yearFrom": 1900,
"location": {
"city": "yetAnotherString",
"state": "FL"
}
}
}