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

Posted

技术标签:

【中文标题】嵌套查询 GraphQL:语法错误 - iOS【英文标题】:Nested query GraphQL : Syntax error - iOS 【发布时间】:2019-04-18 12:25:13 【问题描述】:

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

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

让我知道如何调用 GraphQL 的嵌套查询。

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

【问题讨论】:

【参考方案1】:

如果参数是输入对象类型(而不是标量),您可以使用大括号包含输入对象类型的字段。

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"
    
  

【讨论】:

以上是关于嵌套查询 GraphQL:语法错误 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

在 GraphQL 中不能有带有嵌套字段的输入类型。错误:预期类型是 GraphQLInputType,但不是

GraphQL 嵌套查询查找

为啥我的 graphql 嵌套查询返回 null?

graphql 在嵌套查询的父或父参数上使用嵌套查询参数

GraphQL 嵌套查询返回 null

嵌套查询 GraphQl