在Apollo客户端查询中过滤查询中的数据

问题描述

我正在构建一个Typescript SDK,用于汇总来自多个不同API和其他数据源的数据,并通过GraphQL接口公开它。我不仅需要将文本或序列化对象从GraphQL客户端传递到解析器,还需要在客户端定义解析器,以便可以通过解析器的上下文对象传递自定义(代理,可观察到)的javascript对象。

我正在将Apollo Client与apollo-link-state一起使用来调用我的查询解析器,但是,我找不到一个好的模式来让用户过滤他从查询获取的数据。

我使用apollo-server构建的GraphQL API的时间使我能够传递一个where对象,该对象过滤来自解析器的数据,而无需在解析器端编写自定义逻辑来考虑所有问题where对象的可能值。因此,我通常会这样查询

getFoo (where: { bar: '3'}) {
  bar
}

我是否错误地认为上述查询apollo-server解析器是否在没有任何解析器筛选逻辑的情况下进行了where bar = '3'筛选?是否存在通配符过滤器这样的功能?如果存在,我是否可以在这样的客户端查询中使用它?:

getFoo (where: { bar: '3'}) @client {
  bar
}

如果无法实现,是否需要在每个解析器中手动实现此where对象过滤器?哪个好的模式呢?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)