Técnico: Algumas Coisas Sobre Webhook
O Que É Webhook? 💁
- De acordo com a Canaltech Web é:
"A web nada mais é do que o caminho que permite a você usufruir do conteúdo transferido pela internet."
- Por curiosidade web é também o 3º w do www.
- Hook: Tradução direta para "Gancho" ou "Anzol".
- Webhook então diretamente signfica "Ganchos na Internet".
- Também pode ser chamado de "HTTP Push API", "API Reversa", "HTTP Callback" ou "Web Callback".
- Webhooks são hooks usados em serviços da web. 🌐
Para Que Serve O Webhook? 🐾
- De acordo com Simon Fredsted em seu site:
O Webhook é a maneira da Web de integrar sistemas completamente diferentes nos tempos semi-real e real.
- Fornecem ao seu app uma maneira de consumir novos dados de eventos de um endpoint.
- Você fornece uma URL para o aplicativo que consumirá seu webhook.
- Com os webhooks não é necessário que você e/ou uma ferramenta enviem um pedido para saber se uma ação ocorreu em outro software. A informação é enviada automaticamente.
Metáfora do Webhook! 📌
Pense que você colocou o leite para esquentar e precisa monitorar para ele não entornar e cair no fogão.
A cada um minuto você verifica o nível do leite.
Mas daí você pensa: Será mesmo que preciso ir consultar se o nível de leite está ok mesmo? Eu realmente preciso pegar um termômetro para medir se a temperatura do leite está ideal?
Você pode ter um dispositivo para te avisar quando isso acontecer, basta apenas que a temperatura ou o nível do leite atinjam um certo valor para você receber este alerta!
É aí que entra em jogo os webhooks!
Os dados trafegam de uma ferramenta para outra, sempre que uma ação ocorre. Sem intervalos de verificação, é instantâneo!
Quais Casos Os Webhooks Podem Ser Utilizados? 👌
- Para automatização de tarefas.
- Para obter logs de um sistema.
- Para ter um feedback de alguma ação.
- Para receber eventos variados.
- Etc...
Um Pouco Mais De Técniques Sobre Webhook 👨💻
- Webhooks são baseados em eventos.
- Consumir um webhook significa enviar eventos para ele e o webhook fará seu trabalho.
- Sempre que um novo evento ocorre no aplicativo, ele posta os dados do evento em sua URL especificada, atualizando seu aplicativo em tempo real.
- Normalmente utilizado para fazer dois sistemas distintos se comunicarem e para passar longe do Polling em direção a um modelo de Publisher-Subscriber.
- Polling é a capacidade de efetuar requisições ao sistema desejado de forma síncrona para saber se este sistema já completou determinada tarefa ou gostaria de emitir alguma mensagem, etc.
- Publisher-Subscriber é a capacidade de separar a comunicação de maneira assíncrona... O publisher pode públicar uma mensagem e o subscriber ser notificado e receber esta mensagem.
- Também podemos entender o webhook como o Design Pattern Observer, conforme @josefilho comentou:
O Webhook é o design pattern Observer em sua forma pura, aonde o conceito que seria aplicado dentro do domínio de classes é extrapolado para sistemas externos, aonde o Sujeito conhece seus Observadores e os notifica toda vez que um evento de interesse acontece.
Exemplos 😅
1 - Você pode postar mensagens no Slack através de uma URL.
2 - Você irá pedir ao vendedor de um tênis para avisar quando um determinado modelo estiver disponível em estoque. Assim libera o tempo de ambos os lados.
3 - Você tem a necessidade de ser informado quando o pagamento daquela compra do laptop surreal no seu ecommerce favorito for aprovado.
Como Testar Um Webhook? 🧪
- Você pode testar um webhook clicando neste link -> https://webhook.site/
- Neste site você pode inspecionar, testar e automatizar facilmente seu projeto com um webhook simples de usar
- CUIDADO: Evite compartilhar dados sensíveis, nunca se sabe para onde e por qual lugar nossos dados preciosos estão trafegando 😊
Próximos Passos 👣
- Comente quais pontos deixei passar sobre os Webhooks.
- Bora crescer com sucessinho!!
Referências 🚀
- https://webhook.site/
- https://simonfredsted.com/1583
- https://canaltech.com.br/entretenimento/qual-a-diferenca-entre-internet-e-world-wide-web/
- https://blog.cloud-elements.com/webhooks-vs-polling-youre-better-than-this
- https://medium.com/geekculture/hooks-vs-callbacks-vs-webhooks-f2f1fa6bdbcd#:~:text=A%20callback%20is%20a%20function,towards%20a%20publisher%2Dsubscriber%20model.
- https://api.slack.com/messaging/webhooks#create_a_webhook
- https://agilitycms.com/resources/posts/-api-vs-webhooks-what-s-the-difference
- https://pluga.co/blog/webhook/