ASP.NET WebHook 和 Web 服务之间的区别?

Difference Between ASP.NET WebHooks and Web Services?

如果有兴趣,我一直在关注 Henrik F Nielsen's impressive series of blog posts on the new ASP.NET WebHooks technology. The latest post which can be found here

In another, earlier one of these posts, I asked in a comment what the difference is between WebHooks and SignalR. An answer was later posted to a link to a .

但是,在阅读了该问题的答案之后,我现在不得不问:使用 ASP.NET WebHooks 和使用常规 ol' 网络服务有什么区别? 中给出的公认答案建议 "Think B2B communication"。但是,当我想到 B2B 通信时,我会立即想到 Web 服务——SOAP 或 REST(据我目前的理解——使用 HTTP 动词,很像 WebHooks)。

我一直对学习 WebHooks 很感兴趣,并且一直在关注这些帖子,但对于如何将所有这些结合在一起仍然感到困惑,尤其是当其他技术似乎基本上做同样的事情时。如果能澄清这两种技术就太好了。

它只是处理 "automatically" 特定 saas 服务的 "plain old mvc" 堆栈之上的一层。

从前 -- Webhook 是手动编码的

考虑为 dropBox webhook 编写一个侦听器。您必须从头开始编写所有参数和验证代码,您必须了解 oauth2.0(并弄清楚如何激活它),并且您需要弄清楚哪些挂钩可用。

asp.net 中的 Webhook 让 编写 Dropbox 代码的人 也可以为您的 webhook 编写参数和框架代码。所以更容易快速正确。

显然,如果您要发布自己的 webhook,那么它们会提供管道以便您可以在您的代码中创建 "observers",并且它们为其他人提供了一种自动订阅这些侦听器的方式。同样,您可以自己编写所有代码,但是遵循标准是一种简单的方法,可以确保其他人在使用您的钩子时不会有陡峭的学习曲线。

认为"nuget for web services"

想一想 nuget 如何从根本上改变了向代码添加引用的过程。您只需将包添加到您的解决方案中,系统就会负责下载、web.config 更改等。

此服务对 saas 网络服务执行相同的操作。现在,作为 saas 服务提供商,我们可以为 download/install 听众编写一个类似 nuget 的包。没有更多的知识库文章解释 oauth1 vs oauth2 vs api-keys 是如何工作的。我们只是创建了一个小安装向导,然后你就可以开始了!

然而,当我们第一次开始使用 nuget 时,有一小部分编码员会问 "what's the difference between nuget and just adding references to your code manually."

对比 SignalR

SignalR 是与您的服务器的实时 "active" 连接。它正在创建您自己的类似聊天的服务。 Webhook(通用概念)只是对您的端点之一的 http(s) 调用。我认为,这就是对您的其他堆栈 post 的答案的重点。

Webhook 概念与 MSFT "WebHook"

Ms​​ft 使 https post 更进一步,并表示 Dropbox(或任何 webhook 提供商)可以创建一个向导供其他人使用,引导他们通过身份验证、查询参数等。这很酷想法,因为您无需阅读 Dropbox 文档即可使用 Dropbox webhook。