首页 > 解决方案 > 在 Ariadne 中使用来自 Apollo 的 BatchHttpLink

问题描述

我的客户端应用程序用React+编写Apollo,后端用Python+编写Ariadne。有什么方法可以处理批量查询数组Ariadne吗?

我在我的客户中设置了自定义Link

const apolloClient = new ApolloClient({
   cache: InMemoryCache(),
   link: new BatchHttpLink({ uri })
});

客户端按预期开始在数组中发送查询,但不幸的400 Bad Request是我得到了,因为后端需要一个对象而不是数组。

我不确定是否应该Ariadne手动创建中间件并处理请求,还是有一些自动解决方案?我试图谷歌,但短语ariadne + batch/batching似乎没有一起出现......

标签: pythongraphqlapolloreact-apolloariadne-graphql

解决方案


我还没有真正使用过这个特定的 GraphQL 服务器实现,但值得注意的是,“批处理链接”确实只是发送了一组查询,这是一个规范扩展,而不是原始规范的一部分,所以如果你的服务器实现和GraphQL 端点不支持这个,你必须手动添加它。

不过,这并不是一个特别特别的逻辑。它执行数组中的所有查询,就好像它们是单独发送的一样。您可以在此处找到有关此行为的稻草人规范文档:https ://github.com/graphql/graphql-over-http/blob/main/rfcs/Batching.md


推荐阅读