DEV Community

Cover image for Webhook vs APIs
Suspir0n
Suspir0n

Posted on

Webhook vs APIs

Quer saber o que é um webhook e como funciona?

Imagine a facilidade e a praticidade que você terá usando o webhook, neste artigo iremos descrever o que webhook, como funciona e de bônus deixaremos um exemplo simples e prático usando python mas também pode ser utilizado em outras linguagens, deixarei referencias em outras linguagens para poder ajudar no seu estudo.

O que é Webhook?

De acordo com o blog do Vindi "Webhook é uma forma de recebimento de informações, passadas quando um evento acontece. Dessa forma, o webhook, na prática, é a forma de receber informações entre dois sistemas de uma forma passiva. Além disso, o webhook (também conhecido como retorno de chamada web ou HTTP e, ainda, impulso API) é uma maneira prática para um app ou sistema fornecer outras aplicações com informações em tempo real. Da mesma forma, ele fornece dados para outros aplicativos, e são muito eficientes tanto para o prestador de serviço, como para o consumidor."

Simplificando, webhooks são eventos que acionam uma ação.

webhook em ação

Como funciona Webhook?

Então, supondo que você esteja criando um bot para o telegram, e você acaba criando uma API para isso, nesta API você tem uma rota que executa uma determinada ação do bot, com isso você precisa fazer o set Webhook na API do telegram para que quando for requisitado aquele Webhook, ele ira acionar a ação daquele determinado evento.

webhook vs API

Observando está imagem acima, você percebe que Webhook e APIs são duas comunicações totalmente diferente, enquanto a API ele pega os dados de um servidor, o Webhook puxa os seus dados. APIs estão em constante votação para obter as assinaturas.

Diferença de votação

Webhook, na prática

Neste exemplo prático iremos utilizar:

Vamos começar criando um servidor para receber o webhook.

Servidor em Flask

Neste código, você observa que criamos apenas uma rota chamada '/webhook' do método do tipo 'POST', logo a nossa rota irá permitir requisição com este método. Com isso basta você executar dois comandos, o primeiro para escrever seu server como uma variável de ambiente e o outro para executar o server.

No windows:

  • set FLASK_APP='nomedoseuarquivo'.py
  • flask run

No Linux:

  • export FLASK_APP='nomedoseuarquivo'.py
  • flask run

Após você ter criado um server, vamos agora criar um arquivo onde você irar enviar o seu webhook, o código ficaria desta forma.

Send Webhooks

Neste código, fizemos um exemplo de requisição, fazendo o envio do nosso webhook, finalizando nosso exemplo nesta etapa.

Repare que neste exemplo, usamos localhost, caso você deseje aplicar esses conhecimentos utilizando a API do telegram, por exemplo, você pode usar o ngrok, pois o telegram não aceita localhost, então você pode utilizar o ngrok para isso, sendo que ele serve apenas para testar sua aplicação, não para ir em produção. Decorrerei sobre o ngrok em outro artigo, deixarei o link logo abaixo.

Este foi o diário de bordo #06 vamos nos despedindo por aqui. Voltaremos com mais um diário de bordo.

Este artigo foi útil para você?
Deixe um comentário abaixo.

Top comments (0)