DEV Community

Roberson Miguel
Roberson Miguel

Posted on

11

O que é um webhook?

Um webhook é uma forma de comunicação em que um servidor envia solicitações HTTP para um cliente em resposta a eventos ou atualizações ocorridas no servidor. É uma maneira eficiente de receber informações em tempo real, eliminando a necessidade de consultas repetidas (polling).

Suponha que voce tenha um site de comércio eletrônico. Os clientes enviam pedidos por meio da API gateway, que encaminha as transações de pagamento para o serviço de pagamento. O serviço de pagamento, por sua vez, se comunica com um provedor de serviços de pagamento externo (PSP) para concluir as transações.

Existem duas maneiras de lidar com a essa comunicação:

🔹 1. Polling

Após enviar a solicitação de pagamento, o serviço de continua perguntando sobre o status da transação. Após várias tentativas, o serviço finalmente retorna o status.

O polling possui duas desvantagens:

  • O polling constante do status requer recursos do serviço.
  • A comunicação direta com o serviço de pagamento, cria vulnerabilidades de segurança.

🔹 2. Webhook

Podemos registrar um webhook no serviço. Isso significa: me avise quando uma determinada URL houver atualizações na solicitação. Quando o serviço concluir o processamento, ele invocará a solicitação HTTP para atualizar o status da transação.

Dessa forma, o paradigma de programação é alterado e o serviço não precisa mais desperdiçar recursos para consultar o status do pagamento.

*E se o serviço nunca retornar a chamada? *

Podemos configurar um job de limpeza para verificar o status do pagamento a cada hora.

Os webhooks são frequentemente chamados de APIs reversas ou APIs de push, pois o servidor envia solicitações HTTP para o cliente. Precisamos prestar atenção a três coisas ao usar um webhook:

1 - Projetar uma API adequada para o serviço chamar.

2 - Configurar regras adequadas na API gateway por motivos de segurança.

3 - Registrar a URL correta no serviço.

Fonte: O que são Webhooks

Boas Praticas de uso de Webhook

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

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

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay