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.
Top comments (0)