【发布时间】:2019-04-18 12:25:13
【问题描述】:
我正在使用 Apollo GraphQL 并且必须调用嵌套查询。但是在调用 .graphql 文件中的查询时,它会显示
语法错误:预期名称,找到 {
我必须使用指定的参数调用 getAllproduct{....} 查询。这里的 FilterInput 参数为 >location 使用另一种查询模式,所以我不知道如何调用此嵌套查询。请帮助我找出解决方案。谢谢...
【问题讨论】:
我正在使用 Apollo GraphQL 并且必须调用嵌套查询。但是在调用 .graphql 文件中的查询时,它会显示
语法错误:预期名称,找到 {
我必须使用指定的参数调用 getAllproduct{....} 查询。这里的 FilterInput 参数为 >location 使用另一种查询模式,所以我不知道如何调用此嵌套查询。请帮助我找出解决方案。谢谢...
【问题讨论】:
如果参数是输入对象类型(而不是标量),您可以使用大括号包含输入对象类型的字段。
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"
}
}
}
【讨论】: