webhook是什么意思?

我已经阅读http://en.wikipedia.org/wiki/Webhook,但我仍然不清楚webhook的概念。
我对webhook有以下怀疑:
任何人都可以用真实世界的例子来解释webhook的用法吗?
2.为什么我要在应用程序中使用webhook?

正如在维基百科文章中提到的,一个非常好的现实世界的例子是像github这样的源代码库。 假设您使用github来pipe理您的源代码,并使用单独的工具(竹,jenkins等)来执行持续集成。 每次你将代码推送到github,你都希望它在你的CI工具中触发构build。 我们要如何做到这一点?

鉴于这个话题,答案是“webhooks”并不奇怪。

Github提供了各种webhook触发器。 请参阅https://developer.github.com/webhooks/的文档 – 具体的例子可能会有所帮助。 简而言之,每个webhook包括:

  • 触发钩子的事件(例如'代码被推送到仓库')
  • github应该向事件发生时发送请求的URL(例如CI包中的传入触发点)
  • 有效载荷(将发送到所选URL的请求正文)。

这里最重要的是github不知道你在使用什么CI系统。 它不关心。 它知道在其领域发生的事件,由外部系统来注册其兴趣并决定如何处理通知。 这创build了一个高度通用和可扩展的接口,避免了要求git做出任何(可能有限的)关于谁或什么可能想要对其事件作出反应的假设。

简单来说,webhooks是扩展点,允许其他人扩展你的应用程序。

您将定义webhooks(扩展点),用户将使用这些钩子注册他们的function,并且只要这些扩展点到达,您的应用程序就会调用用户注册的function。