如何在Apigee中实现异步回调场景。
例如,我需要调用主机,主机可能需要一些时间来处理响应。一旦响应准备就绪,需要将其传递给呼叫者/客户端。
先谢谢
此致
答案 0 :(得分:0)
不能声称这是一种标准的方法,但这是一个设计:
假设:目标主机必须支持注册回拨URL。
当客户端调用Apigee代理时,中间的Apigee代理可以生成唯一的回调URL,并在发出API请求时作为参数发送给目标。与此同时,它必须阻止客户端(并开始轮询内部存储)。
回调URL本身就是Apigee中的一个代理,它接收来自目标端的响应,然后更新Apigee持久性存储中的条目,该条目由第一个代理进行轮询。
如果回调发生在x秒内,则apigee代理可以将响应发送回客户端。如果在那段时间内没有发生,那么它可以发回一些错误。
要实现,您可以在apigee中使用键值映射或缓存策略来实现瞬态持久性存储。并且阻止客户端和轮询持久性存储使用java或javascript策略
答案 1 :(得分:0)
看看https://github.com/apigee/api-platform-samples/tree/master/sample-proxies/async-callout,看看是否有帮助。此示例向目标发出请求,将响应句柄存储在JS“会话”中,离开以执行其他操作,然后从“会话”中检索句柄并检查响应。