是否有用于在客户端动态创建 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/