GraphQL-动态创建查询的形状

时间:2019-07-04 20:51:18

标签: javascript graphql

是否存在用于在客户端动态创建graphql查询的软件包/方法?例如,假设我们有以下查询

query { 
  foo {
    a
    b
    c {
      d {
        e
        f
      }
    g
  }
}

我想允许用户选择/选择从该查询返回的数据字段。换句话说,如果他们不希望返回字段,那么我将在查询中将其省略。 *这是因为某些字段包含大量数据,如果可以避免,最好避免带宽问题。

我是否必须手动构建查询(ugh),还是有人在这种情况下使用的javascript工具?

我看到了这一点,但是它似乎已不再维护,并且在“问题”标签中指出了一些问题:https://github.com/codemeasandwich/graphql-query-builder

1 个答案:

答案 0 :(得分:1)

您可能必须自己构建查询(毕竟,它只是一个字符串),在这种情况下,使用Builder模式可能会有所帮助,因为似乎您有一组复杂的参数来确定应包含在其中的内容查询。

您看过这些答案吗?这些满足您的需求吗?

GraphQL dynamic query building

React Apollo dynamically create query from state(如果您使用的是React / Apollo)

要记住的一件事是,通过使用动态而不是静态的客户端查询,您会失去一些缓存和安全优势。

我还建议提醒您的用户,选择某些字段会产生昂贵的查询;至少要对这些数据进行分页,以使您不会一次返回如此大量的数据。