数字时代的关键驱动力是通信。作为人类,我们希望技术能够帮助我们更快、更轻松地与更多人交流。想要实现这一点,我们必须首先找到一种让技术相互交流的方法,这就是 API 和 webhook 发挥作用的地方。
Webhook 和 API 都有助于在两个应用程序之间同步和中继数据。但两者有各自不同的方式,因此服务的场景略有所不同。为了消除两者之间的任何混淆,让我们看一下 webhook 和 API 的区别,以及它们最适合哪种场景。
简单来讲,API 会在您要求时执行操作,而Webhook会在满足某些条件或发生场景时自行执行操作。让我们深入一点,可以通过服务器调用 API 与 example.com进行通信。通过该通信,API 可以列出、创建、编辑或删除项目, 不过,API 需要得到说明。
Webhook 是从example.com到服务器的自动调用。当 example.com上发生特定事件时会自动触发这些调用。例如,如果新用户在 example.com 上注册,服务器会自动给该用户发送欢迎电子邮件。
有时 webhook 被称为反向 API,但这并不完全正确。它们不会向后运行,而是不需要您主动发起请求,只要有新数据可用,就会发送数据。
要设置 webhook,您只需公司注册一个 URL, 该 URL 将接受数据并可以激活工作流并将数据转化为有用的东西。在大多数情况下,您甚至可以指定提供商将向您提供数据的情况。
Webhook 和 API 在发出请求的方式上有所不同。例如,无论是否有数据更新响应,API 都会调用数据。而 webhook 仅在您连接的外部系统有数据更新时才通过 HTTP POST 接收调用。
Webhook 通常用于执行较小的请求和任务,在某些情况下,Webhook 比整个 API 更合适。
一种常见情况是当您的应用程序或平台需要实时更新,但您不想浪费服务器资源时。在这种情况下,webhook 将是有益的。
但是,有一点关于 webhook 的弊端是由于它们不用于定期请求数据,并且仅在有新数据可用时才会这样做,因此如果系统由于某种原因脱机,您可能永远无法了解新的更新。您对总数据流的控制相对较少,因为您必须接受给定更新可用的总数据量。
许多应用程序和工具确实依赖于 webhook,但主要用于较小的数据请求,而不是使用它们来担当主干服务。尽管如此,仍然有很多有效使用 webhook 的例子。
1. Hiflow场景连接器 本质上是一个巨大的网络钩子。可以帮将某些应用程序链接在一起,每当一个事件发生时,它就会触发另一个应用程序的动作。
2. 腾讯问卷有一个 webhook,只要有人完成了问卷,就会自动将问卷完成信息推送到对应的企业微信 群进行周知。
API 指的是应用程序编程接口。API 是应用程序和平台通过通用通信方法与其他应用程序和平台连接的一种方式。要使 API 工作,需要对数据提出请求,然后是对该请求的响应。数据通常以 JSON 等格式交付。
API 往往是许多现有软件和工具所依赖的框架。例如,创建腾讯文档的应用程序可以依靠 API 不断从 腾讯文档获取最新数据。大多数大型应用程序都有多个 API,它们与扩展其服务产品集成,如下所示。
当您知道您将不断更改数据时,使用API则非常合适。如果您需要的数据相对停滞,那么使用 API 是没有意义的。例如,如果您是一家电子商务商店,需要定期更新其运输和跟踪数据,那么您将不断提出请求。每次轮询 API 时,您都会获得新数据。如果您的数据没有不断更新,则无法保证在另一端为您准备好数据。发生这种情况时,您只是在浪费服务器资源。但是,如果您打算使用 API,则可以施加调用限制,这将限制您在设定的时间段内进行的调用次数以减少最终的资源使用。
1.有赞商城有一个查询店铺信息的API,通过调用该API我们可以查询到对应店铺的注册地址,上架商品等信息
2.问卷网有一个查询问卷信息的API,通过发送HTTP请求调用该API我们可以获取用户创建的问卷信息,问卷项目列表等
这不是说哪一个更好,因为没有任何一种方法在所有的场景下都是优于其他的方法的。因地制宜才是最佳的实践方式。
举个例子,您可以将 API 视为发送给朋友的文本消息,以获取有关他们正在主持的活动的更多信息。你问一个问题,他们就会回复,类似于半双工tong xin。
使用 webhook,您可以告诉您的朋友在他们组织另一项活动时给您发短信,只是为了让您知道。您提出初始请求,当新信息出现时,他们会不断向您发送更新。
最后,大多数应用程序最终会同时使用 API 和 webhook 来创建一个可以在正确的时间传递正确类型的数据的系统。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。