我有一个Web服务,它接收来自客户端的帖子,并最终将请求发送到另一个公司托管的其他Web服务。该公司使用Callback/Webhook模式发送请求,他们立即回复204,然后他们通过http post发送完成的结果到我已配置的url(它是一个长时间运行的进程,有时可能需要一段时间)。C#WebApi等待WebHook响应
我想等待一段时间来查看是否从其他公司及时返回了响应(例如20秒超时),然后返回其他公司的响应结果。如果他们在超时期限内没有回应,我只会将通用结果返回给我的客户,并提供有关他们以后可以在何处获得其余数据的附加信息。
我想弄明白的是,如何让一个API控制器等待一个请求到另一个API控制器,然后从该控制器获取数据。我想到的是某种事件系统的将是适当的:
- 客户发送请求到控制器API端点A
- 控制器A注册一个处理程序,由控制器B引发的事件
- 第三方发送HTTP请求将控制器B
- 控制器B发布事件控制器A沿侦听来自第三方数据发布
- 控制器A(如果没有达到超时)返回响应客户
虽然需要相当多的实用程序代码才能工作。用webhooks api处理请求/响应模型有没有更好的方法?
微软有ASP.NET WebHooks框架。 –