DEV Community

Cover image for Webhook vs APIs
Suspir0n
Suspir0n

Posted on

3 1

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.

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more