Você sabe o que é webhook e como construir a sua estrutura? Nesta aula vou te explicar tudo isso com um passo a passo simples!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Fala Impressionadores! Você sabe o que é um Webhook? Sabe como enviar e receber ?
Nessa aula eu quero te mostrar o que é um webhook, qual a diferença entre ele, o JSON e o API para que você entenda como essa estrutura funciona.
Vou te dar alguns exemplos para ficar mais fácil de entender o que é e quando ele é utilizado.
Quer aprender mais sobre comunicação entre sistemas da internet?
Então vem comigo que eu vou te explicar sobre os webhooks, requisições HTTP e muito mais!
O que é um Webhook?
Como o próprio nome sugere Hook significa gancho, ou seja, é a forma com que duas ferramentas na internet conseguem se comunicar, um exemplo disso é quando você tem um site e nele existe um sistema de pagamento:
Esse sistema de pagamento precisa avisar para o seu site quando o pagamento deu certo, quando houve problemas no recebimento, quando a compra foi aprovada ou cancelada, etc.
Então basicamente quando a compra é feita o sistema do cartão envia uma informação para o site avisando se a compra foi concluída ou não, envia também o nome do cliente e outras informações.
As informações sigilosas do cartão ficam seguras, as únicas informações enviadas são as necessárias para o site entender a situação da transação.
O mesmo acontece com o e-mail que envia um webhook para o seu CRM para avisar quando o e-mail que você enviou foi aberto.
Então ele é uma forma de comunicação entre sistemas, você tanto pode receber quanto enviar um.
Geralmente o webhook é enviado em um formato JSON e isso pode causar algumas confusões, então se você tiver dúvidas pode olhar as aulas onde expliquei o que são JSON e API.
Basicamente o JSON é um dicionário com uma formatação específica enquanto a API é um sistema inteiro, uma API pode ter diversos pontos que recebem e enviam webhooks.
Resumindo, são informações enviadas de um sistema a outro no formato JSON que podem ser enviadas por uma API.
A estrutura do webhook é uma estrutura condicionada, ou seja, para enviar é necessário que uma condição seja satisfeita, essa condição pode ser o cliente passar o cartão, pode ser um cancelamento, a questão é que o envio está programado de acordo com esses eventos.
Como enviar um Webhook no Python?
Normalmente o webhook é transitado por meio de requisições HTTP que é como a internet se comunica.
Essas requisições existem em dois formatos:
O primeiro passo é baixar a biblioteca requests e rodar ela em seu terminal:
>pip install request
Feito isso, importe a biblioteca e vamos começar o código:
import requests
request.post(link, data={})
O webhook sempre será endereçado para um link = endpoint específico que sempre vai estar disponível para receber alguma chamada, e essa é a primeira informação que vamos colocar dentro dos parênteses.
Após isso, vamos criar um dicionário com os dados da transação e modificar o formato do dicionário para o formato JSON, para fazer isso vamos precisar importar o JSON no código.
Código para enviar:
import requests
import json
# envia um webhook
link = "https://webhook.site/36991bfc-ea7a-4483-9ace-a9ffe261e283"
dicionario = {
"nome": "Fulano",
"valor": 999,
"parcelas": 12,
}
dicionario_ajustado = json.dumps(dicionario)
requests.post(link, data=dicionario_ajustado)
Agora, vamos ver como receber.
Quando nós enviamos no código acima, criamos uma biblioteca, transformamos para o formato JSON e enviamos para um link disponível para receber webhooks.
Então para receber webhooks teremos que fazer o processo inverso, neste caso temos que criar o link que vai ficar disponível para receber webhooks.
Como criar o link?
Para criar o link vamos utilizar algum framework para a criação de API, neste caso vamos usar o Flask.
Dentro da estrutura do Flask vamos criar uma função dentro do Python, essa função vai receber uma informação que está no formato JSON e vai transformar de volta ao formato de uma biblioteca, o processo contrário que fizemos antes.
A partir daí você pode trabalhar com as informações da biblioteca como for mais conveniente dentro do seu código.
#flask
@ -> libera esse link de receber um POST
def receber_webhook():
dicionário = request.json()
Essa lógica utilizada acima para receber webhooks foi explicada no detalhe na aula sobre API disponível gratuitamente! Clique no link!
Nessa aula eu te mostrei o que é um webhook, como criar, enviar e receber. Dessa forma você vai poder adicioná-los nas suas aplicações.
A partir de agora você têm mais essa ferramenta para usar quando estiver fazendo um projeto mais robusto.
Eu espero que aproveitem! Até a próxima!
Para acessar outras publicações de Python, clique aqui!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.