我正在尝试扩展 WebAPI 以支持通过 HTTP 回调返回响应。
工作流程:
- WebAPI 接收带有回调 URL 的 HTTP 请求。
- WebAPI 正常处理 URL,如果操作完成的时间少于配置的超时时间,则同步发送结果。
- 如果超过了超时,服务器需要发送一个 HTTP 响应,表明它已经异步,处理继续。
- 当处理(最终)完成时,控制器的响应将发布到预先协商的回调 url。
控制器需要保持同步并且不知道异步/回调功能。
似乎 MessageHandlers 是一个可能的候选者,但似乎不支持返回多个 HTTP 响应(一个用于早期的“长任务”响应,一个用于回调)。
有人可以就 WebAPI 的哪些领域可扩展并与此方案相关提供指导吗?