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

Image of Datadog

Master Mobile Monitoring for iOS Apps

Monitor your app’s health with real-time insights into crash-free rates, start times, and more. Optimize performance and prevent user churn by addressing critical issues like app hangs, and ANRs. Learn how to keep your iOS app running smoothly across all devices by downloading this eBook.

Get The eBook

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more