它们之间的第一个和主要区别是,对于大多数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。