網路與介面
網路鉤子(webhook)
/ WEB-hook /
網路鉤子(webhook)是一種「反過來的 API」:與其讓你三番五次地問某個服務「有新東西了嗎?有新東西了嗎?」,不如讓這個服務在事情一發生的那一刻主動來叫你。你事先把自己的一個 URL 交給它,它就承諾:每當你關心的那件事發生時,就往那個位址送一條小訊息。
想像一下兩種取信方式的差別:一種是你每隔五分鐘跑去信箱開一次蓋、看有沒有信;另一種是信來了,郵差直接按你家門鈴。第一種(你一遍遍地問)叫「輪詢」(polling),很浪費——大多數時候答案都是「沒有,啥也沒有」。webhook 就是那個門鈴:由服務主動來叫你,而且只在真有消息時才叫,於是你能第一時間知道,而你的程式碼其餘時間都可以安心睡覺。
看懂了這個模式,你會發現它無處不在。Stripe 在付款成功時來敲你的 URL;GitHub 在有人推送程式碼時來敲;聊天應用程式每來一條新訊息就敲一下。你寫一個安靜等待的小端點(endpoint),外面的世界一有事要告訴你,就來敲它的門。
POST /my-webhook HTTP/1.1
Content-Type: application/json
{ "event": "payment.succeeded", "amount": 4200 }事件一觸發,服務就往你的 URL 發一個 POST——你完全不用輪詢。
普通 API:你去呼叫它。webhook:它來呼叫你。同樣是 HTTP,方向正好相反。
又稱
另見