嵌套查询GraphQL:语法错误-iOS

时间:2018-11-15 11:47:36

标签: ios graphql apollo

我正在使用Apollo GraphQL,必须调用嵌套查询。但是在.graphql文件中调用查询时,显示为

  

语法错误:预期名称,找到{

让我知道如何调用GraphQL的嵌套查询。 enter image description here

我必须使用指定的参数调用 getAllproduct {....} 查询。这里的 FilterInput 的参数为 location 以及另一种查询模式,所以我不知道如何调用此嵌套查询。任何人都可以帮助我找出解决方案。谢谢...

1 个答案:

答案 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"
    }
  }
}