什么是webhook?webhook简介
一、概述
Webhook是一個API概念,并且變得越來越流行。我們能用事件描述的事物越多,webhook的作用范圍也就越大。Webhook作為一個輕量的事件處理應(yīng)用,正變得越來越有用。
準(zhǔn)確的說webhoo是一種web回調(diào)或者h(yuǎn)ttp的push API,是向APP或者其他應(yīng)用提供實時信息的一種方式。Webhook在數(shù)據(jù)產(chǎn)生時立即發(fā)送數(shù)據(jù),也就是你能實時收到數(shù)據(jù)。這一種不同于典型的API,需要用了實時性需要足夠快的輪詢。這無論是對生產(chǎn)還是對消費者都是高效的,唯一的缺點是初始建立困難。
Webhook有時也被稱為反向API,因為他提供了API規(guī)則,你需要設(shè)計要使用的API。Webhook將向你的應(yīng)用發(fā)起http請求,典型的是post請求,應(yīng)用程序由請求驅(qū)動。
二、使用webhook
消費一個webhook是為webhook準(zhǔn)備一個URL,用于webhook發(fā)送請求。這些通常由后臺頁面和或者API完成。這就意味你的應(yīng)用要設(shè)置一個通過公網(wǎng)可以訪問的URL。
多數(shù)webhook以兩種數(shù)據(jù)格式發(fā)布數(shù)據(jù):JSON或者XML,這需要解釋。另一種數(shù)據(jù)格式是application/x-www-form-urlencoded or multipart/form-data。這兩種方式都很容易解析,并且多數(shù)的Web應(yīng)用架構(gòu)都可以做這部分工作。
三、Webhook調(diào)試
調(diào)試webhook有時很復(fù)雜,因為webhook原則來說是異步的。你首先要解發(fā)他,然后等待,接著檢查是否有響應(yīng)。這是枯燥并且相當(dāng)?shù)托АP疫\的是還有其他方法:
1、明白webhook能提供什么,使用如RequestBin之類的工具收集webhook的請求;
2、用cURL或者Postman來模擬請求;
3、用ngrok這樣的工具測試你的代碼;
4、用Runscope工具來查看整個流程。
四、webhook安全
因為webhook發(fā)送數(shù)據(jù)到應(yīng)用上公開的URL,這就給其他人找到這個URL并且發(fā)送錯誤數(shù)據(jù)的機(jī)會。你可采用技術(shù)手段,防止這樣的事情發(fā)生。最簡單的方法是采用https(TLS connection)。除了使用https外,還可以采用以下的方法進(jìn)一步提高安全性:
1、首先增加Token,這個大多數(shù)webhook都支持;
2、增加認(rèn)證;
3、數(shù)據(jù)簽名。
五、重要的問題
當(dāng)作為webhook的消費者時有兩件事需要銘記于心:
1、webhook通過請求發(fā)送數(shù)據(jù)到你的應(yīng)用后,就不再關(guān)注這些數(shù)據(jù)。也就是說如果你的應(yīng)用存在問題,數(shù)據(jù)會丟失。許多webhook會處理回應(yīng),如果程序出現(xiàn)錯誤會重傳數(shù)據(jù)。如果你的應(yīng)用處理這個請求并且依然返回一個錯誤,你的應(yīng)用就會收到重復(fù)數(shù)據(jù)。
2、webhook會發(fā)出大量的請求,這樣會造成你的應(yīng)用阻塞。確保你的應(yīng)用能處理這些請求。
翻譯,原文地址:https://sendgrid.com/blog/webhook-vs-api-whats-difference/
總結(jié)
以上是生活随笔為你收集整理的什么是webhook?webhook简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年春节院线电影《小猪佩奇过大年》
- 下一篇: MSOCache文件夹是干什么的?mso