{"id":3349,"date":"2023-01-30T01:23:39","date_gmt":"2023-01-30T04:23:39","guid":{"rendered":"http:\/\/www.55bet-pro.com\/pet\/sistemas-de-informacao\/?p=3349"},"modified":"2025-09-02T14:37:51","modified_gmt":"2025-09-02T17:37:51","slug":"webhooks","status":"publish","type":"post","link":"http:\/\/www.55bet-pro.com\/pet\/sistemas-de-informacao\/2023\/01\/30\/webhooks","title":{"rendered":"Webhooks"},"content":{"rendered":"\n

Ol\u00e1 pessoal, tudo bem? O PET-SI preparou mais uma reda\u00e7\u00e3o para voc\u00ea, nesta edi\u00e7\u00e3o o tema foi Webhooks e comunica\u00e7\u00e3o entre API\u2019s. Basicamente o Webhook pode ser imaginado literalmente como a sua tradu\u00e7\u00e3o prop\u00f5e Web <\/span>= Rede\/internet<\/span>, hook <\/span>= gancho<\/span>. Ou seja, Webhooks s\u00e3o como ganchos que ligam sistemas externos. Agora vamos entender melhor como isso ocorre e como \u00e9 interpretado pelos sistemas.<\/p>\n

Contextualizando<\/span><\/strong><\/h2>\n

No mundo atual, \u00e9 comum lidarmos com v\u00e1rias ferramentas tecnol\u00f3gicas no nosso dia a dia de desenvolvimento em uma empresa, e todo esse cen\u00e1rio gera a necessidade de integra\u00e7\u00f5es e automatiza\u00e7\u00f5es para que seja poss\u00edvel otimizar o tempo e aumentar a utilidade dos sistemas. Em muitas ocasi\u00f5es, a posse da informa\u00e7\u00e3o n\u00e3o \u00e9 suficiente, \u00e9 necess\u00e1rio um tratamento da mesma. Sem as integra\u00e7\u00f5es e automatiza\u00e7\u00f5es as equipes precisam realizar o tratamento manualmente, por menores que sejam. Se imaginarmos um cen\u00e1rio de uma empresa em larga escala essa pr\u00e1tica se torna invi\u00e1vel, e se formos sinceros na an\u00e1lise, mesmo em pequena escala essa pr\u00e1tica produz uma tarefa trabalhosa.<\/p>\n

Os Webhooks ou \u201cganchos da web\u201d, s\u00e3o gatilhos acionados a partir de um evento para transmitir informa\u00e7\u00f5es de um sistema para outro.<\/span><\/strong><\/em><\/p>\n

Facilitando<\/strong><\/h2>\n
\n

Um Webhook \u00e9 um jeito de conectar dois sistemas e levar informa\u00e7\u00f5es de um para outro no momento exato em que um evento acontece, para que atrav\u00e9s desse recebimento de dados em tempo real, aconte\u00e7a uma a\u00e7\u00e3o de forma autom\u00e1tica.<\/p>\n<\/blockquote>\n

\n

\u00c9 semelhante a uma API convencional, por\u00e9m mais independente, porque para que ele cumpra seu papel, o usu\u00e1rio n\u00e3o precisa realizar pesquisas. Se algo muda em um aplicativo automaticamente o outro \u00e9 avisado.<\/p>\n<\/blockquote>\n

\n

No momento que uma informa\u00e7\u00e3o entra no sistema acionador (acesso a plataforma ou leitura de um e-mail, por exemplo) ele organiza esses dados e envia uma mensagem para a URL do webhook configurado, que notifica o sistema executor (o que vai realizar a a\u00e7\u00e3o).<\/p>\n<\/blockquote>\n

\n

Claro que o usu\u00e1rio decide como ele quer receber essas informa\u00e7\u00f5es. Desta forma \u00e9 poss\u00edvel configurar, por exemplo, o envio de e-mails espec\u00edficos a partir de um provedor quando um evento acontece em outro sistema, como pode ser o caso de um push como esse da Netflix que mencionei.<\/p>\n<\/blockquote>\n\n\n\n

Exemplo pr\u00e1tico de Webhook<\/strong><\/h2>\n

Vamos entender melhor como o Webhook funciona na pr\u00e1tica?<\/strong><\/h3>\n
\n

Provavelmente voc\u00ea j\u00e1 ouviu falar da Zapier, uma ferramenta que integra uma infinidade de aplicativos, certo? Com o Webhook da Zapier conectado a dois aplicativos diferentes, as informa\u00e7\u00f5es do primeiro sistema podem ser enviadas para o segundo sempre que acontece um evento.<\/p>\n<\/blockquote>\n

\n

Ou seja, sempre que uma nova informa\u00e7\u00e3o entra no primeiro aplicativo ele envia uma mensagem para a URL do Webhook da Zapier, que transfere os dados para os outros aplicativos previamente configurados.<\/p>\n<\/blockquote>\n

\n

Tecnicamente, os Webhooks s\u00e3o retornos de chamada HTTP definidos pelo usu\u00e1rio. As notifica\u00e7\u00f5es de sa\u00edda acontecem, geralmente, via HTTP POST. Os Webhooks permitem que voc\u00ea publique uma URL http: \/\/ ou http: \/\/ em que os dados possam ficar salvos, na maioria das vezes, nos formatos JSON, XML ou por dados de formul\u00e1rio.<\/p>\n<\/blockquote>\n

\n

Geralmente as plataformas interpretam esses dados e orientam a configura\u00e7\u00e3o dos Webhooks fazendo todo o trabalho de leitura das informa\u00e7\u00f5es para voc\u00ea. Em alguns casos o sistema ir\u00e1 te perguntar de que modo deseja ler esses dados. De qualquer modo, com alguns cliques voc\u00ea j\u00e1 pode ver uma integra\u00e7\u00e3o acontecendo.<\/p>\n<\/blockquote>\n\n\n\n

Ainda na entrevista a Nearsoft, Jeff Lindsay disse que:<\/strong><\/em><\/p>\n

\n

\u201cA implica\u00e7\u00e3o mais interessante a longo prazo est\u00e1 no fato de serem acess\u00edveis ao usu\u00e1rio. Os Webhooks tornam muito mais f\u00e1cil fazer coisas program\u00e1ticas interessantes com aplicativos do que trabalhar com, por exemplo, uma API REST.\u201d<\/p>\n<\/blockquote>\n\n\n\n

Agora que j\u00e1 temos uma base te\u00f3rica do que s\u00e3o Webhooks, vamos rever os conceitos com uma vis\u00e3o pr\u00e1tica e t\u00e9cnica do que ocorre com esse \u201cganchos da web\u201d\u2026<\/strong><\/h2>\n

Imagine que voc\u00ea est\u00e1 em um restaurante aguardando por uma refei\u00e7\u00e3o, e por ventura o tel\u00e3o de pedidos est\u00e1 danificado. Te convidam a sentar para esperar o pedido e enquanto isso voc\u00ea come\u00e7a a conversar por mensagem com seus amigos. A coisa mais simples e inteligente que se pode fazer \u00e9 esperar at\u00e9 que seu nome seja chamado e, enquanto isso, fique entretido com a conversa no celular. Mas vamos imaginar um segundo caso, em que voc\u00ea \u00e9 uma pessoa impaciente e que a cada cinco minutos pergunta o andamento do pedido.<\/p>\n

Todos sabemos que a segunda abordagem faz menos sentido, pelo fato de que pedir mais vezes o andamento do pedido n\u00e3o tornar\u00e1 o processo mais r\u00e1pido. E poder\u00e1 deix\u00e1-lo mais ansioso com a situa\u00e7\u00e3o.<\/p>\n

O mesmo problema ocorre em muitos aplicativos de neg\u00f3cios quando n\u00e3o se sabe quando a resposta chegar\u00e1. Para resolver isso, esses aplicativos continuam perguntando, mesmo que isso n\u00e3o fa\u00e7a diferen\u00e7a em grande parte das vezes.<\/p>\n

Nesses casos podemos pensar nos webhooks, uma solu\u00e7\u00e3o que v\u00eam para resolver problemas como esses. Essa decis\u00f5es de arquitetura podem ter um impacto de otimiza\u00e7\u00e3o significativo em seu projeto.<\/p>\n\n\n\n

O que \u00e9 um Webhook?<\/h2>\n

Um Webhook \u00e9 um produto onde usamos uma opera\u00e7\u00e3o HTTP POST para notificar um cliente. O cliente ser\u00e1 especificado geralmente definindo o endpoint HTTP que ser\u00e1 chamado sempre que um evento espec\u00edfico<\/strong> ocorrer.<\/p>\n

Por que um m\u00e9todos POST? Pelo motivo de que esse m\u00e9todo permite que o servidor envie quaisquer dados dentro da solicita\u00e7\u00e3o do corpo da requisi\u00e7\u00e3o (JSON\/XML).<\/p>\n

Por evento<\/strong>, podemos especificar alguns casos de uso, como por exemplo:<\/p>\n