Webhooks與API的區(qū)別在哪里?
Webhooks起初看起來像是API,但它們略有不同。它們之間的主要區(qū)別在于,webhooks不需要發(fā)出請求即可獲得響應,而API則需要發(fā)送請求才能獲得響應。使用Webhooks可以接收,而API需要您檢索。
一個示例是GitHub Webhook與GitHub API。對于GitHub API,您每次需要信息時都需要發(fā)送GET請求。與GitHub Webhook相比,在GitHub webhook中,您可以打開并添加URL來發(fā)送POST數(shù)據(jù)。正確設置了Webhook之后,無論何時更新GitHub上的信息,數(shù)據(jù)都會自動發(fā)送到您在Webhook設置中擁有的URL。
詳細比較
為了更好地說明,我們可以看兩種情況:使用Webhook和使用API。
使用API:假設我們想要某個服務的Github存儲庫的最新提交日期。首先GitHub Service API需要對GitHub存儲庫所有者帳戶進行身份驗證,然后可以為GET請求的正確端點調(diào)用最新的提交日期。
使用 Webhook : GitHub Service Webhook將需要創(chuàng)建自己的Webhook URL,然后將該URL放入GitHub存儲庫的設置中。設置好該URL后,無論何時在存儲庫上發(fā)生任何事件,GitHub都會將包含所有更新數(shù)據(jù)的POST請求發(fā)送到我們的webhook URL。如果Webhook正在運行,則可以輕松地在服務上顯示W(wǎng)ebhook數(shù)據(jù)中的最新提交日期。
如上圖所示,使用Webhook可使數(shù)據(jù)檢索更加自動化。每當有更新時,GitHub Webhooks會將數(shù)據(jù)移交給我們的服務,而GitHub API要求我們從GitHub檢索數(shù)據(jù)。
Webhooks的一些缺點是兼容性和支持。由于API更詳細和手動,因此很容易從A點到B點快速集成它們。某些服務尚不支持Webhooks,這使得設置它們更加困難。每個服務通常都會提供一個API。