javascript - GraphQL - 动态创建查询的形状

标签 javascript graphql

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

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

我想允许用户选择从该查询返回哪些数据字段。换句话说,如果他们不想要返回字段,我会从查询中省略它。 * 这是因为有些字段包含的数据量非常大,如果可以避免的话最好避免带宽问题。

我是否必须手动构建查询(呃)或者是否有人们在这种情况下使用的 JavaScript 工具?

我看到了这个,但看起来它不再维护,并且在问题选项卡中注意到了一些问题:https://github.com/codemeasandwich/graphql-query-builder

最佳答案

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

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

GraphQL dynamic query building

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

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

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

关于javascript - GraphQL - 动态创建查询的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56894106/

相关文章:

javascript - ASP.NET MVC Controller 结果返回查看

javascript - Vue.js 不适用于新的 Laravel 5.8 项目

go - graphql-go : Use an Object as Input Argument to a Query

graphql - 从字段解析器上的父节点获取数据

javascript - GraphQL查询错误消息: argument is required,但未提供

javascript - Vue.js 中函数回调中的内容未正确显示

javascript - Ember JS,在状态为 root.loaded.updated.uncommitted 的 Transformer 处理事件 `didCommit` 中解析数据时出错。”

javascript - 如何列出 iframe 请求的资源

javascript - 在 Gatsby JS (react) 中收到有关拥有唯一 key prop 的警告

graphql - 构建 GraphQL 类型