在流程中直接访问网络API

时间:2018-07-16 14:39:46

标签: corda

我知道这是一个古老的问题,但是直到现在我还没有得出一个简洁的结论。

我之前已经问过这种问题:

https://discourse.corda.net/t/direct-accessing-network-apis-in-flows/915

因此,此刻,如果我想在流中发出HTTP请求,可以直接提出吗?还是受到某种限制?

如果没有,例如,如何有更好的方法与遗留系统进行交互?

1 个答案:

答案 0 :(得分:1)

可以从流中进行HTTP调用。但是,请注意,从Corda 3.1开始,流中对HTTP请求的支持是有限的:

  • 该请求必须以 blocking 的方式执行。流当前不支持暂停以等待HTTP调用的响应。这意味着在HTTP调用返回之前,流工作者将被阻止
  • 该请求必须是幂等的。如果流程失败并且必须从检查点重新启动,则将重播HTTP请求

您可以在Flow HTTP示例here中看到在流程中发出HTTP请求的示例。

另一种方法是在流外部查询遗留系统,并将查询结果作为流参数传入。