O que é um webhook?
Um webhook é um tipo de API, ou interface de programação de aplicativos, que permite que um determinado aplicativo web envie dados para outro aplicativo quando eventos predefinidos ocorrem. Enquanto a maioria das APIs lida com trocas de dados bidirecionais entre softwares distintos com base em solicitações do usuário, os webhooks enviam dados unidirecionais quando certos eventos ocorrem. Por exemplo, um webhook pode enviar o tempo que um usuário passou em uma página sempre que o usuário sai da página. Webhooks também podem ser chamados de "retornos de chamada web" ou "APIs de Push HTTP".
Os desenvolvedores usam webhooks junto com outras APIs para criar e gerenciar conexões entre seu próprio software e outros aplicativos. Como os webhooks enviam dados acionados por eventos, eles são tipicamente preferidos em relação às APIs quando o desenvolvedor deseja acumular dados ao longo do tempo. Em contraste, as APIs tendem a ser mais úteis quando os desenvolvedores querem que o compartilhamento de dados ocorra em instâncias definidas pelo comportamento do usuário. Enquanto outros tipos de APIs fazem solicitações de dados e retornam um resultado, os webhooks esperam passivamente que eventos de dados ocorram.
Para configurar um webhook, os clientes criam uma URL de webhook que fornecem ao provedor de webhook. A partir de então, o webhook fornecido envia dados para essa URL de webhook para ingestão pelo aplicativo do cliente. O aplicativo do cliente valida as solicitações de webhook recebidas para garantir que os dados recebidos são do provedor e não uma ameaça de segurança, e então recebe os dados.
Como outras APIs, as informações que podem ser monitoradas e enviadas por um determinado webhook são governadas e entendidas tanto pelo site host quanto pelo site cliente por meio de documentação abrangente. Este "contrato" mútuo permite que ambas as partes protejam dados sensíveis, já que um webhook não empacotará mais dados do que o necessário para cumprir o resultado desejado pelo proprietário do webhook. Desta forma, nenhum dos aplicativos expõe totalmente seus próprios dados ou os dados de seus usuários.
Benefícios do uso de webhooks
- Redução de carga de trabalho: Os desenvolvedores confiam nos webhooks para fornecer informações aos seus aplicativos de software à medida que os eventos ocorrem. Em vez de monitorar esses eventos eles mesmos, os desenvolvedores podem simplesmente estabelecer um fluxo de informações com um webhook que rastreia eventos para eles. Isso reduz a carga de trabalho e permite que os desenvolvedores se concentrem em outros aspectos dos projetos em que estão trabalhando.
- Operações web mais suaves: Os webhooks permitem que as empresas conectem seus aplicativos web, que de outra forma seriam distintos, o que auxilia no compartilhamento direto e eficiente de dados entre esses sistemas. Isso melhora a presença e o desempenho web de uma empresa, ajudando a manter seus aplicativos web sincronizados automaticamente.
- Notificações: Quando os desenvolvedores querem implementar notificações para seus usuários, os webhooks fornecem uma maneira fácil de fazê-lo sem gastar esforço de desenvolvimento em formas mais robustas de APIs. Os webhooks requerem menos tempo e recursos para serem construídos e implementados do que outros tipos de APIs, por isso servem como uma solução eficiente em casos de uso como este.
- Experiências de usuário melhoradas: As capacidades de compartilhamento de dados dos webhooks têm muitos casos de uso, incluindo a capacidade de personalizar e melhorar as experiências dos usuários com base na coleta de dados. Por exemplo, uma empresa que analisa os dados de comportamento do usuário de seu aplicativo web expostos por webhooks pode descobrir pontos problemáticos na jornada do cliente e trabalhar para resolvê-los. Ao mesmo tempo, as empresas podem usar webhooks para descobrir quais partes de seus aplicativos web estão recebendo mais engajamento e capitalizar sobre isso.
- Marketing focado: Da mesma forma que as empresas podem melhorar as experiências dos usuários analisando os dados comportamentais expostos por webhooks, os esforços de marketing se beneficiam desses mesmos dados e permitem que as empresas direcionem anúncios para públicos específicos. Ao adaptar o conteúdo para os usuários com base em dados comportamentais e demográficos, os profissionais de marketing ganham uma vantagem que torna o engajamento mais provável. As empresas podem então continuar a rastrear esse engajamento, criando um ciclo de feedback positivo que maximiza a eficácia da campanha.
Impactos do uso de webhooks
As empresas de desenvolvimento de software podem ser negativamente impactadas pela dependência de webhooks:
- Riscos de segurança: As empresas que usam webhooks devem tomar medidas para garantir que suas conexões não as exponham a vulnerabilidades de segurança. Os clientes de webhook podem verificar as solicitações de webhook recebidas validando a assinatura da solicitação em relação à da empresa host. Os usuários também podem proteger com senha sua URL de webhook para que apenas o host e o cliente tenham acesso. Essas práticas ajudam a proteger contra ameaças como ataques de spoofing — um tipo de ataque em que agentes mal-intencionados falsificam dados para assumir a identidade de um host de webhook.
- Falta de funcionalidade: Os webhooks são mais leves do que outras APIs, tornando-os uma ferramenta atraente para desenvolvedores que procuram ingerir dados de outros aplicativos web. No entanto, a natureza fácil de implementar dos webhooks não os torna automaticamente uma solução melhor do que APIs mais robustas. Em muitos casos, o esforço extra para conectar APIs bidirecionais que podem compartilhar dados quando as solicitações de API são feitas servirá melhor aos desenvolvedores do que um webhook pode. Em certo ponto, tentar forçar os webhooks como uma solução viável realmente custará tempo e recursos aos desenvolvedores.

Adam Crivello
Adam is a research analyst focused on dev software. He started at G2 in July 2019 and leverages his background in comedy writing and coding to provide engaging, informative research content while building his software expertise. In his free time he enjoys cooking, playing video games, writing and performing comedy, and avoiding sports talk.