【发布时间】:2016-03-04 05:18:28
【问题描述】:
我有一个网络服务,它接收来自客户的帖子,并最终向另一家公司托管的不同网络服务发送请求。该公司使用回调/Webhook 模型,您在其中发送请求,他们立即回复 204,然后他们通过 http post 将完成的结果发送到我配置的 url(这是一个长时间运行的过程,有时可能需要一段时间)。
我想等待一段时间,看看其他公司是否及时返回响应(例如 20 秒超时),然后返回其他公司的响应结果。如果他们在超时期限内没有响应,我只会向我的客户返回一个通用结果,其中包含有关他们以后可以从哪里获取其余数据的附加信息。
我想弄清楚的是如何让一个 API 控制器等待对另一个 API 控制器的请求,然后从该控制器获取数据。我在想某种事件系统是合适的:
- 客户向控制器 A 上的 api 端点发送请求
- 控制器 A 向控制器 B 引发的事件注册处理程序
- 第 3 方向控制器 B 发送 Http 请求
- 控制器 B 发布控制器 A 正在侦听的事件以及来自 3rd 方帖子的数据
- 控制器 A(如果未达到超时)向客户端返回响应
不过,这需要相当多的实用程序代码才能工作。有没有更好的方法来使用 webhooks api 处理请求/响应模型?
【问题讨论】:
-
微软有 ASP.NET WebHooks 框架。
-
^ 是的,文档很糟糕。
标签: c# asp.net-web-api webhooks