Webhook

és un mètode per augmentar o alterar el comportament d'una pàgina web o aplicació web amb funcions de callback.

Un webhook en desenvolupament web é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.[1]

Fig.1 Esquema de blocs de funció callback

El format sol ser JSON. La sol·licitud es fa com a sol·licitud HTTP POST.

Els webhooks són "funcions callback HTTP definida per l'usuari".[2] Normalment es desencadenen per algun esdeveniment, com ara enviar codi a un repositori[3] o un comentari publicat a un bloc.[4] 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.[5]

Els usos habituals són per activar compilacions amb sistemes d'integració contínua [6] o per notificar sistemes de seguiment d'errors.[7] Com que els webhooks utilitzen 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ó.[8]

Referències modifica

  1. Web hook to revolutionize the web, 3 May 2007, <http://progrium.com/blog/2007/05/03/web-hooks-to-revolutionize-the-web/> Arxivat 26 August 2015[Date mismatch] a Wayback Machine. «Còpia arxivada». Arxivat de l'original el 2015-08-26. [Consulta: 3 octubre 2022].
  2. «Webhooks». Atlassian. [Consulta: 24 setembre 2019].]
  3. About Webhooks - Github Help
  4. WordPress Webhooks
  5. «What are WebHooks and How Do They Enable a Real-time Web?». Arxivat de l'original el 2012-08-19. [Consulta: 3 octubre 2022].
  6. Jenkins GitHub Commit Hooks HOWTO, <http://wiki.cloudbees.com/bin/view/DEV/GitHub+Commit+Hooks+HOWTO> Arxivat 2015-09-25 a Wayback Machine. «Còpia arxivada». Arxivat de l'original el 2015-09-25. [Consulta: 3 octubre 2022].
  7. Google Project Hosting - Post-Commit Web Hooks[Enllaç no actiu]
  8. «Why Verify». Svix. Svix Inc.. [Consulta: September 12, 2021].