在 Asp.Net WebHooks 中为同一发件人处理不同负载类型的推荐方法

Recommended way to process different payload types in Asp.Net WebHooks for same sender

我正在为来自同一应用程序中不同服务器的内部 webhook 设置一个 Asp.Net WebHook 接收器。因此,我正在使用内置的 CustomWebHookReceiver。 webhook需要发送几种不同的payload类型JSON,需要被接收方反序列化为不同的强类型,进行不同的处理。

由于 webhook 调用之间的唯一区别是负载,单个 webhook 接收器将配置为单个 id,遵循将共享密钥放置在 web.config AppSetting 中的模式:

MS_WebHookReceiverSecret_<receiver>

为不同的负载类型实现不同的 webhook 处理行为的最佳方法是什么。为不同的有效负载类型创建单独的接收器或单独的 ID 似乎并不合适,因为安全模型是相同的并且编写新的接收器似乎有点过分。

创建不同的处理程序似乎是正确的方向,但内置设置似乎只允许处理程序指定接收者和优先级。这留下了在处理程序的 ExecuteAsync 方法中检查有效负载并决定如何处理消息的选项。

这是正确的,还是有更好的方法?

Tom,您可以使用 URI 的 {id} 部分使用相同的处理程序接收尽可能多的 WebHook,然后根据 {id} 区分它们。您可以找到有关如何设置的更多详细信息 here

希望对您有所帮助!

亨里克