python - 在 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
似乎没有一起出现......
解决方案
我还没有真正使用过这个特定的 GraphQL 服务器实现,但值得注意的是,“批处理链接”确实只是发送了一组查询,这是一个规范扩展,而不是原始规范的一部分,所以如果你的服务器实现和GraphQL 端点不支持这个,你必须手动添加它。
不过,这并不是一个特别特别的逻辑。它执行数组中的所有查询,就好像它们是单独发送的一样。您可以在此处找到有关此行为的稻草人规范文档:https ://github.com/graphql/graphql-over-http/blob/main/rfcs/Batching.md
推荐阅读
- apache-spark - 了解 Spark 中的阶段
- terraform-provider-azure - Terraform - Azurerm - 订阅活动日志/API 日志记录
- javascript - JS函数结果不渲染
- jboss - 如何使用 IIB ESB 工具包从 Jboss JMS 队列中读取消息
- javascript - 跟踪服务器端的 readfile() 进度
- django - Django中的用户停用
- excel - 循环通过 10,000 个单元格时如何使 VBA 代码运行得更快?
- c++ - windows下如何使用子认证包登录?LsaLogonUser 调用失败,nt_status 0xC00000A7 (STATUS_BAD_VALIDATION_CLASS)
- sapui5 - 添加新项目时,表格分组会重置所选值
- c# - 如何使用 HtmlRenderer 在 PDF 中显示图像?(输入 URL 时图像会自动下载