gpt4 book ai didi

GraphQL 异步查询结果

转载 作者:行者123 更新时间:2023-12-04 15:34:20 24 4
gpt4 key购买 nike

我正在尝试使用 GraphQL 实现批量查询接口(interface)。我可以毫无问题地获得同步工作的请求,但我不确定如何使结果异步。基本上,我希望能够启动查询并返回一个指针,指向查询完成后最终结果所在的位置。我想这样做,因为查询有时可能需要很长时间。

在 REST 中,这是微不足道的。您返回 202 并返回一个 Location header ,指向客户端可以去哪里获取结果。作为规范的 GraphQL 似乎没有这个概念;它似乎总是希望同步处理请求。

在 GraphQL 中做这样的事情有什么约定吗?我非常喜欢查询规范,但我不希望在后端执行大型查询时让客户端 HTTP 连接保持打开状态长达几分钟。如果发生任何事情终止该连接,则需要重试整个查询,即使结果本身是持久的。

最佳答案

您尝试做的事情无法以符合规范的方式轻松解决。 Apollo 介绍了一个 @defer 的想法指令几乎可以满足您的需求,但它仍然是一项实验性功能。相信接力摩登is trying to do something similar .

想法实际上是相同的——客户端使用指令将字段或片段标记为可延迟的。服务器解析请求但将延迟字段保留为空。然后,它将一个或多个补丁与延迟数据一起发送到客户端。客户端能够将初始请求和补丁分别应用于其缓存,每次都像往常一样触发适当的 UI 更改。

关于GraphQL 异步查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60257766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com