【问题标题】:Cull empty arrays in a GraphQL query在 GraphQL 查询中剔除空数组
【发布时间】:2018-05-07 08:10:14
【问题描述】:

这是查询各种体育赛事的 GraphQL 查询的要点。

query Sports {
  sports {
    name
    events {
      name
    }
  }
}

我们可能会得到类似的结果:

Rugby
  Six Nations
  Rugby Union
Football
  World Cup
  Europe League
...

在这种情况下,任何运动都可能有一个空的事件数组。我可以在查询中放置一些东西来要求任何数组都应该至少有 1 个元素吗?或者如果我想防止这种情况被看到,是否需要对客户端实施过滤?

【问题讨论】:

    标签: graphql


    【解决方案1】:

    除了请求特定字段之外,GraphQL 没有任何内置的过滤或减少查询结果的方法。在为端点创建架构时,必须实现任何过滤、排序等。

    您必须查阅您正在使用的端点 (or run an introspection query) 的文档,以确定是否有任何参数可以传递给 sports 字段,以防止服务器返回没​​有事件的运动.

    【讨论】:

      【解决方案2】:

      在 graphCMS 中,我们可以使用关键字“where”。 我不知道这个功能在标准 API 中是否可用。

      query Sports {
         sports(where: {events_some: {}}) {
            name
            events {
               name
            }
         }
      }
      

      【讨论】:

      • 请在您的答案中添加一些解释,以便其他人可以从中学习
      猜你喜欢
      • 2022-01-26
      • 2021-10-20
      • 2016-12-28
      • 1970-01-01
      • 2023-01-13
      • 2020-09-07
      • 2018-04-14
      • 2020-01-22
      • 2016-10-24
      相关资源
      最近更新 更多