微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在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 举报,一经查实,本站将立刻删除。