Webhooks起初看起來(lái)像是API,但它們略有不同。它們之間的主要區(qū)別在于,webhooks不需要發(fā)出請(qǐng)求即可獲得響應(yīng),而API則需要發(fā)送請(qǐng)求才能獲得響應(yīng)。使用Webhooks可以接收,而API需要您檢索。
一個(gè)示例是GitHub Webhook與GitHub API。對(duì)于GitHub API,您每次需要信息時(shí)都需要發(fā)送GET請(qǐng)求。與GitHub Webhook相比,在GitHub webhook中,您可以打開(kāi)并添加URL來(lái)發(fā)送POST數(shù)據(jù)。正確設(shè)置了Webhook之后,無(wú)論何時(shí)更新GitHub上的信息,數(shù)據(jù)都會(huì)自動(dòng)發(fā)送到您在Webhook設(shè)置中擁有的URL。
詳細(xì)比較
為了更好地說(shuō)明,我們可以看兩種情況:使用Webhook和使用API。
使用API:假設(shè)我們想要某個(gè)服務(wù)的Github存儲(chǔ)庫(kù)的最新提交日期。首先GitHub Service API需要對(duì)GitHub存儲(chǔ)庫(kù)所有者帳戶(hù)進(jìn)行身份驗(yàn)證,然后可以為GET請(qǐng)求的正確端點(diǎn)調(diào)用最新的提交日期。
使用 Webhook : GitHub Service Webhook將需要?jiǎng)?chuàng)建自己的Webhook URL,然后將該URL放入GitHub存儲(chǔ)庫(kù)的設(shè)置中。設(shè)置好該URL后,無(wú)論何時(shí)在存儲(chǔ)庫(kù)上發(fā)生任何事件,GitHub都會(huì)將包含所有更新數(shù)據(jù)的POST請(qǐng)求發(fā)送到我們的webhook URL。如果Webhook正在運(yùn)行,則可以輕松地在服務(wù)上顯示W(wǎng)ebhook數(shù)據(jù)中的最新提交日期。
如上圖所示,使用Webhook可使數(shù)據(jù)檢索更加自動(dòng)化。每當(dāng)有更新時(shí),GitHub Webhooks會(huì)將數(shù)據(jù)移交給我們的服務(wù),而GitHub API要求我們從GitHub檢索數(shù)據(jù)。
Webhooks的一些缺點(diǎn)是兼容性和支持。由于API更詳細(xì)和手動(dòng),因此很容易從A點(diǎn)到B點(diǎn)快速集成它們。某些服務(wù)尚不支持Webhooks,這使得設(shè)置它們更加困難。每個(gè)服務(wù)通常都會(huì)提供一個(gè)API。
責(zé)編AJX
-
API
+關(guān)注
關(guān)注
2文章
1501瀏覽量
62025 -
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5578瀏覽量
79282
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論