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

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

因此,他们基本上是在做同样的事情。

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

术语WEBHOOK是____,API是______。

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

#1 楼

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

API是example.com上您数据的接口。该API用于
从服务器到example.com平台,可用于列出,
创建,编辑或删除项目。
Webhooks是从example.com到服务器的自动调用。在example.com中发生特定事件时被触发
。例如,当任务
完成并且您想实时了解它时,我们将向您在EVENT.COMPLETED
webhook中注册的URL发出
POST请求。您的示例帐户。
因此,简而言之:API是您在其中告诉example.com的内容,而Webhooks是在其中
更多内容深度:

SaaS是一个概念-存在于云中的软件的思想,
客户端通常是浏览器。 SaaS应用程序由它可以提供给用户的功能定义(例如Salesforce
提供可用于存储客户信息的数据库)
可用功能取决于目的
应用程序(例如CRM,Email Blaster,CMS等)。
API是一种SaaS应用程序通过通用通信方法(ReST)与其他
应用程序连接的方式。 ,SOAP,JSON,
等)。一个API无法直接与另一个API对话。一个API可以由编码的应用程序或中间件使用,它们充当两个API之间的桥梁,并运行执行线程。例如-
NetSuite和Salesforce都具有SOAP API,但是为了它们,并每小时通过其
API将新记录推送到NetSuite。
Webhooks是SaaS应用程序的另一种通信协议,它允许在应用程序之间进行通信,但只需使用HTTP
POSTS来控制执行线程即可。 Webhooks允许
应用程序直接相互交谈,而无需使用
中间件。例如,当您向WuFoo提交表单时,可以
将其设置为启动Webhooks HTTP POST到另一个服务,并通过表单提交的某些字段值进行传递。 Webhooks也可以与API结合使用-例如,在webhook
该应用程序可以使用API​​与用于
检查新字段值或修改记录状态的服务。
如果没有SaaS
应用程序,很难拥有API或Webhooks。但是,您可以轻松拥有一个不使用Webhooks或(公共)API的SaaS应用程序。同样,根据SaaS应用程序的
功能,您可以选择使用webhooks或
API。


评论


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

– Kaushal28
20 Mar 16 '20 at 6:05

#2 楼

API会在您要求时执行操作,而Webhook在某些条件匹配时会自行执行操作。是我们告诉你事情的地方。


通过http://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks


每当有新东西出现时,webhook都会通过https://sendgrid.com/blog/webhook-vs-api-whats-difference将其发送到您的URL。


/

#3 楼

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

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

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

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

评论


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

–怀特先生
19年1月26日在9:30

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

–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
19年1月26日在9:50

#4 楼

以下是非专业人士术语中webhook和API的区别的一个例子:

假设您在线订购了商品,今天就可以交货了,但是您在工作,所以您告诉女仆到达时就把包裹拿了。目的是,如果包裹已经到达,则必须通知您。这是在以下情况中发生的情况:

Webhook


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

API


包装已经到达,但您仍然不知道。然后,您
叫您是女仆,询问是否已经到达,然后她说是。

不同之处在于API中,您需要一个触发器来获取数据,例如您进行的调用,而一旦有新数据到达,webhook就会自动通知您,而无需触发。

#5 楼

Api只是一个小型应用程序,用于从现有平台访问任何开发平台中的某些功能或数据,例如:您要在网站上使用google geo-location服务(已有平台)(开发中)平台),而不是重建整个系统并设置您自己的人造卫星,而是使用一个小的Api从google访问该功能。

Web钩子只是返回或回退的网址您使用Api请求的响应和数据发送到您的网站或平台,并在那里收集您想要的信息。

#6 楼



何时使用Webhooks
Webhooks通常充当较小数据的信使。它有助于
发送和提取实时更新。
最适合使用Webhook的场景之一是当您的应用或平台需要实时功能而您却没有不想使用
API,因为您不想在此过程中纠缠设置和浪费资源。在这种情况下,webhook框架
将是最有益的。
s s?适合使用,在这种情况下可以使用Webhook

Webhooks可被视为对基于API的应用程序集成的完美,有时甚至是必不可少的
。 br /> He这是Agility CMS在使用Webhook的其他用例中的一些概述:
清除和管理外部系统中的自定义缓存,例如
网站,移动应用程序或数据库。提供
同步内容/数据以与第三方系统集成的方法(即
Salesforce,Mailchimp等)。构建自定义内容
工作流程。
内容更新后,启动CI / D管道重新部署您的网站-这通常用于使用静态站点生成器构建的JAMstack站点。
内容Web挂钩允许外部应用程序或网站
了解您的Agility CMS实例中发生的内容更改。
通过向Agility CMS提供列表或URL端点来工作。每次
时间内容发生更改或在CMS中发布时,Agility都会将更改通知给
每个端点,并传递表示发生的确切更改的消息。
要开始使用Agility CMS上的Webhook,请遵循
本指南。
何时使用API​​
当您确定不变的API时,API的工作效果非常好
数据增量变化。相对停滞的数据不需要
API。例如,如果您是一家经常需要
跟踪数据或更新某些运输状态的电子商务商店,那么API将是
最佳选择。
如您所知,通过API获取数据更新,您需要定期“调用”
。因此,可以说当您知道数据会不断变化
时,API非常适合
应用程序集成。
API仍然很受欢迎的原因有以下几个:
并非每个应用程序都支持Webhook集成。有时候您
只想知道结果,而不是每个更改对象的事件(即每个排列)。只能将事件通知给
,因此如果您想基于新的信息进行更改
,则需要一个API.webhook负载可能不包含所有

结论
API和webhooks都有不同的用例,但是如果您的目标是要在两个服务之间传输数据,Webhooks是必经之路。
如果您的平台或应用程序需要频繁的数据更改
,则应使用API​​。
可以使用API和Webhooks一起创建一个可以通信的系统
根据您的应用程序对正确的数据类型进行分类。

https://agilitycms.com/resources/posts/-api-vs-webhooks-what-s-the-difference