Webhook和API之间有什么区别?


15

API请求的程序员将收到响应。例如,使用Web API发送电子邮件,您将在请求中传递电子邮件内容。如果一切顺利,您将收到一封声明成功的回复。

要使用webhook,请向提供服务的公司注册一个URL。该URL是应用程序中的一个位置,它将接受数据并对其进行处理。在某些情况下,您可以在希望接收数据时告知提供商情况。每当有新东西出现时,网络挂钩都会将其发送到您的URL。

因此,他们基本上在做同一件事。

我的问题是:webhook和api有什么区别?

WEBHOOK不是____,API不是______。

我知道他们是什么。我对关键差异以及何时使用一种以及何时使用另一种感兴趣。

Answers:


15

它们之间的第一个和主要区别是,对于大多数API来说,先是请求,然后是响应。Webhook不需要任何请求,它仅在可用时发送数据。

简单视图:

API是example.com上数据的接口。该API从您的服务器到example.com平台都可以使用,并且可以用于列出,创建,编辑或删除项目。

Webhooks是在example.com中发生特定事件时触发的从example.com到您服务器的自动调用。例如,当任务完成并且您想实时了解它时,我们将向您在示例帐户中为EVENT.COMPLETED Webhook注册的URL发出POST请求。

因此,简而言之:API是您告诉example.com的地方,而Webhooks是example.com告诉您的地方。

深入了解:

SaaS是一个概念,即存在于云中且客户端通常是浏览器的软件概念。SaaS应用程序由它可以提供给用户的功能定义(例如,Salesforce提供了可用于存储客户信息的数据库),可用功能由应用程序的用途(例如:CRM,Email Blaster,CMS)确定等)。

API是SaaS应用程序通过通用通信方法(ReST,SOAP,JSON等)与其他应用程序连接的一种方式。一个API无法直接与另一个API对话。一个API可以由编码的应用程序或中间件使用,它们充当两个API之间的桥梁并运行执行线程。例如,NetSuite和Salesforce都具有SOAP API,但要使它们进行通信,您希望使用可以与两个系统交互的中间件软件,并配置为通过Salesforce API提取新的联系人记录,并通过将新记录推送到NetSuite。每小时都是API。

Webhooks是SaaS应用程序的另一种通信协议,它允许应用程序之间进行通信,但仅使用HTTP POSTS来控制执行线程。Webhooks允许应用程序直接相互对话,而无需使用中间件。例如,当您向WuFoo提交表单时,可以将其设置为向另一个服务发起Webhooks HTTP POST,并将表单提交中的某些字段值传递出去。Webhooks也可以与API结合使用-例如,在webhook通知其他应用程序发生了记录ID X的事情之后,该应用程序可以使用API​​与服务进行通信以检查新字段值或修改状态一个记录。

没有SaaS应用程序就很难拥有API或Webhooks。但是,您可以轻松拥有不使用Webhooks或(公共)API的SaaS应用程序。同样,根据SaaS应用程序的功能,您可以选择使用webhooks或API。


谢谢!我加入这个社区只是为了支持您的回答(当然还有问题!)。
Kaushal28


5

我将用一个具体的例子来说明这一点:信用卡付款。

当您的网站想要从信用卡中扣款时,您可以在信用卡处理器处调用API。然后,信用卡处理器向信用卡收费,以向该API调用返回成功或失败状态。

信用卡处理器可能需要某种方式来稍后更新有关此交易的网站。例如,交易可能在下周撤销。您的信用卡处理商可能只会向您发送有关此邮件。处理它的另一种方法是webhooks。您在您的网站上告诉您的信用卡处理商URL可以打到您并向您发送数据。当交易被撤消时,支持Web挂钩的信用卡处理器将通过您提供的URL与您的网站联系,并以机器可读格式向您发送数据,您可以解析该数据并让您的Web应用程序自动处理。

Webhook是API的回调机制。基本上,您将与所调用的API一起实现用于异步回调的API。


“您基本上实现了异步回调的API ...”-难道不是“ webhook”吗?
怀特先生

1
我想说的是Webhook是您实现的API。您调用一个API。Webhook是您实现的API,以便他们调用您。
斯蒂芬Ostermiller

2

这是外行术语中webhook和API之间的区别的示例:

假设您在网上订购了一些东西,今天就可以交货了,但是您正在上班,所以您告诉女仆包裹到货后就把包裹拿走。目的是,如果包裹已经到达,则必须通知您。这是在以下情况中发生的:

Webhook

  • 包裹到达后,您的女仆会立即打电话给您,通知您包裹已经到达。

API

  • 包装已经到达,但您仍然不知道。然后,您打电话给您是女佣,询问它是否已经到达,然后她说是。

区别在于API中,您需要一个触发器来像调用一样获取数据,而webhook会在新数据到达时自动通知您,而无需触发器。


0

阿比简直是用来获得从现有的平台使用某些功能或数据的任何开发平台,例如一个小应用程序:你想使用谷歌地理位置服务在您的网站(已有的平台)(发展平台),而不是重新构建整个系统并设置您自己的卫星,而是使用小型Api从Google访问该功能。

虽然网络挂钩是一个简单的返回或后备网址链接到您的网站或平台,在响应和使用你所请求的数据阿比是被送往有你收集你所寻求的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.