Un webhook, en desenvolupament web, és un mecanisme emprat en alguns sistemes per a demanar de ser informats d'esdeveniments en temps real, com ara confirmacions de pagament o alertes meteorològiques. El client informa en quin punt final URL espera la informació i el servidor la invocarà de seguida quan la tingui disponible.
És un mètode per augmentar o alterar el comportament d'una pàgina web o aplicació web amb funcions de callback (figura 1) personalitzades. Aquestes funcions callback poden ser mantingudes, modificades i gestionades per usuaris i desenvolupadors de tercers que no necessàriament estiguin afiliats al lloc web o a l'aplicació d'origen. El terme "webhook" va ser encunyat per Jeff Lindsay l'any 2007 a partir del terme de programació informàtica hook.
El format sol ser JSON. La sol·licitud es fa amb mètode HTTP POST.
Els webhooks són "funcions callback HTTP definides per l'usuari".] Normalment, són desencadenats per algun esdeveniment, com ara enviar codi a un repositoriAbout Webhooks - Github Help o un comentari publicat a un bloc.WordPress Webhooks Quan es produeix aquest esdeveniment, el lloc d'origen fa una sol·licitud HTTP a l'URL configurat per al webhook. Els usuaris poden configurar-los perquè els esdeveniments d'un lloc invoquin comportament en un altre.
Els usos habituals són per a activar compilacions amb sistemes d'integració contínua o per a notificar sistemes de seguiment d'errors.Google Project Hosting - Post-Commit Web Hooks Com que els webhooks usen HTTP, es poden integrar als serveis web sense afegir nova infraestructura.
Quan el client (el lloc web o l'aplicació d'origen) fa una callback de webhook al servidor de l'usuari de tercers, s'ha d'autenticar la sol·licitud POST entrant per evitar un atac de falsificació i verificar la seva marca de temps per evitar un atac de reproducció.
Cal no confondre amb les notificacions push. La diferència conceptual és que els webhooks són per comunicar sistemes i les push són per notificar dispositius finals (mòbils, etc.).
Referències
Categoria:World Wide Web