Webhook

Een webhook is een omgekeerde API-aanroep: in plaats van dat jij een dienst steeds vraagt of er iets gebeurd is, stuurt de dienst zélf een HTTP-request naar jouw URL zodra er iets gebeurt. "Don't call us, we'll call you."

Polling versus webhook

PollingWebhook
Wie neemt initiatiefJij, elke X secondenDe dienst, bij een event
VertragingTot een heel polling-intervalVrijwel direct
VerspillingVeel lege antwoordenAlleen verkeer bij events

Hoe het werkt

Je registreert een URL bij de dienst ("stuur events hierheen"). Bij een event doet de dienst een HTTP POST naar die URL, meestal met JSON in de body. Jouw kant is dus een kleine webserver die deze requests ontvangt en verwerkt.

Bekende voorbeelden: een git push die een CI/CD-pipeline start, een betaalprovider die "betaling gelukt" meldt, en monitoring die een alert in de chat zet.

Beveiliging

Jouw webhook-URL is een publiek bereikbaar endpoint — iedereen kan er iets naartoe POSTen. Diensten ondertekenen hun requests daarom met een gedeeld geheim (een HMAC-handtekening in een header); controleer die altijd voordat je de inhoud vertrouwt. Verwerk events daarnaast idempotent: dezelfde melding kan dubbel bezorgd worden.

Zie ook

  • api — het bredere begrip
  • rest — de stijl van de meeste webhook-requests
  • websocket — permanente verbinding als alternatief
  • cicd — klassieke webhook-afnemer
  • hash — de basis van HMAC-handtekeningen
webontwikkeling