Aguarde, carregando...

API Webhook

API Webhook
Luis Carlos Da Silva Santos
Por: Luis Carlos Da Silva Santos
Dia 22/11/2021 09h45

Os webhooks são definidos pelo usuário HTTP retornos de chamada. Eles são acionados por algum evento em um aplicativo da Web e podem facilitar a integração de diferentes aplicativos ou APIs de terceiros.

Os webhooks são uma maneira de os aplicativos enviarem mensagens ou informações automatizadas para outros aplicativos. É como o PayPal informa ao seu aplicativo de contabilidade o status de pagamento da compra.

Então, o que exatamente é um webhook? Um webhook (também chamado de retorno de chamada na web ou API de push HTTP) é uma maneira de um aplicativo fornecer informações em tempo real a outros aplicativos. Um webhook fornece dados para outros aplicativos, o que significa que você obtém dados imediatamente. Ao contrário das APIs típicas, você precisaria pesquisar dados com muita frequência para obtê-los em tempo real. Isso torna os webhooks muito mais eficientes para o provedor e o consumidor. A única desvantagem dos webhooks é a dificuldade de configurá-los inicialmente.

Os webhooks são usados para uma ampla variedade de finalidades. Exemplos incluem notificar negócios de vendas, ativar e desativar software de programas, atualizando informações do cliente e informando os desenvolvedores sobre o software colisões. Alguns sites até fornecem. APIs que permitem que os usuários enviem dados para um URL quando eventos específicos acontecem. O GitHub, por exemplo, fornece uma lista de eventos que podem acionar um webhook, que os desenvolvedores podem usar para rastrear alterações nos projetos armazenados em seus online repositório. Embora os webhooks sejam uma ferramenta eficaz, eles exigem uma conexão com a Internet entre a fonte de dados e o servidor da web para funcionar. Além disso, um script deve estar presente no servidor no URL de destino e deve ser capaz de reconhecer e analisar os dados do POST. Se a conexão ou script da Internet não estiver disponível, o webhook não funcionará.

Webhooks são mensagens automatizadas enviadas de aplicativos quando algo acontece. Eles têm uma mensagem - ou carga útil - e são enviados para um URL exclusivo - essencialmente o número ou endereço do aplicativo. Os webhooks são quase sempre mais rápidos que as pesquisas e exigem menos trabalho do seu lado.

Webhook

Webhooks vs APIs - Qual é a diferença?

Muitos serviços fornecem APIs e webhooks para mover seus dados para o seu aplicativo. Muitas vezes, você pode obter os mesmos dados usando qualquer método. A faixa, por exemplo, permite recuperar eventos relacionados à cobrança, assinaturas etc. Então, qual é a diferença? Com APIs, você puxar dados do provedor. Mas os webhooks permitem que o provedor o faça empurrar dados para você.

A retirada de dados de uma API funcionará perfeitamente bem para a maioria dos casos de uso. De fato, muitos aplicativos somente fornecem APIs, e nem um webhooks, então pode ser sua única opção.

Mas extrair dados de APIs:

Perda de tempo - seu aplicativo fará solicitações para a API mesmo quando não houver dados a serem retirados do serviço.
Causar atrasos - você precisará pesquisar a API com frequência para garantir que você obtenha os dados mais atualizados. Se você estiver criando um aplicativo que requer atualizações em tempo real, mesmo que puxe uma vez por minuto podem ser muito lentos.

Com os webhooks, o provedor faz o trabalho para você. Eles enviam atualizações em tempo real quando acontecem; você não está pesquisando o serviço para solicitar novos dados.

Benefícios dos webhooks

Como os webhooks notificam outros sistemas quando um evento ocorre, as alterações são direcionadas a eventos e feitas em tempo quase real. UMA integração contínua o sistema que usa webhooks pode enviar uma mensagem para a equipe de segurança somente quando uma falha de compilação é devido a um problema de segurança, por exemplo. Isso pode "empurrar" as informações nas telas da equipe de segurança, em vez de fazer com que elas procurem periodicamente em outros sistemas. Também pode permitir que os sistemas sincronizem em tempo quase real. Uma alternativa para um webhook é a processo de votação Um processo de pesquisa faz com que um programa espere cinco ou 10 minutos e depois chama uma API para obter uma lista de transações recentes, adicionando novas lista e processando-as. Isso pressupõe que a API forneça uma lista de transações recentes.

Quando usar webhooks, APIs ou ambos

  • Às vezes, uma API é tudo o que você tem. Nem todos os serviços fornecem webhooks, portanto, talvez você precise se integrar à API para obter os dados necessários. Por exemplo, Quando - um serviço de dados financeiros - fornece apenas uma API, não um webhook.
  • Às vezes, você se preocupa mais com estatísticas de alto nível, não com eventos individuais. Os webhooks normalmente enviam solicitações HTTP para o seu aplicativo todo evento. Portanto, quando um único usuário se inscreve no seu serviço, envia uma solicitação de webhook para esse evento. Mas você só pode se importar com o número total de assinaturas ativas, o que você pode recuperar facilmente através de uma única solicitação à API.
  • Para fazer alterações, você precisa de uma API. Os webhooks são ótimos para enviar notificações unidirecionais do provedor de webhook para o seu aplicativo. Mas muitas vezes você deseja reagir a essa notificação tomando alguma ação no serviço de terceiros. Para isso, você precisa de uma API. Por exemplo, quando um usuário envia um novo problema no Github, você pode responder com um novo comentário usando a API .
  • Os webhooks contêm dados, mas nem sempre metadados. Os webhooks geralmente enviam pequenas mensagens, por exemplo, informando que o usuário 123 tomou alguma ação X. Muitas vezes, essas mensagens não contêm dados úteis de metadados sobre esse usuário ou evento. Mas você pode consultar uma API para esses metadados. Por exemplo, quando uma avaliação gratuita de um cliente é um terminal enviará uma notificação de webhook, e você pode fazer uma solicitação para a API do cliente para confirmar que o cliente possui um método de pagamento válido no arquivo e recuperar outros metadados.

Como faço para proteger uma integração de webhook?

Os webhooks fornecem dados para URLs acessíveis ao público. Isso significa que qualquer pessoa do provedor de webhook ou qualquer outra pessoa na Internet pode enviar solicitações HTTP para o seu endpoint. Felizmente, existem várias maneiras de proteger seus dados e seu endpoint.

Use HTTPS

Os dados transmitidos pela Internet devem sempre ser criptografados. Sem criptografia, qualquer pessoa sentada entre o navegador e o servidor do qual você está buscando dados pode ler o que você envia e recebe.

Na web, a criptografia acontece usando HTTPS: os enviados e os critérios de criptografia e os nomes da Internet e como as descrições dos itens da parte receptora. Ninguém no meio pode bisbilhotar o que você está enviando.

A maioria dos navegadores modernos fornece uma confirmação visual de que o site que você está visitando é seguro :

Webhooks não são diferentes. Você deseja garantir que os dados confidenciais enviados do provedor de webhook para o seu terminal sejam criptografados. Sua URL de endpoint deve suportar HTTPS e você deve adicionar esse URL segura às configurações do seu webhook.

Alguns provedores de webhook o farão valide se o sua URL HTTPS é segura por exemplo, que o certificado TLS é válido - antes de enviar seus dados. Outros não executam essa validação ou forçam você a usar o HTTPS, por isso é fundamental confirmar isso por conta própria.

Webhook

Usos e exemplos de webhooks

Os webhooks são uma maneira simples de tornar uma API acessível para fazer ou receber chamadas ou enviar respostas baseadas em texto aos usuários quando eventos específicos ocorrem dentro do aplicativo. As plataformas que oferecem suporte a webhooks incluem Facebook, Github, Trello, Confluence e Google Calendar.

Os usos práticos dos webhooks podem incluir:

  • Lembretes automáticos diários por e-mail para reuniões
  • Confirmações de pagamentos processados e concluídos
  • Sincronize alterações nos dados do cliente entre aplicativos
  • Os webhooks são muito comuns na internet das coisas (IoT), onde um sensor pode notar uma mudança de temperatura e ligar para o sistema de ar condicionado. Um sensor de movimento pode enviar uma mensagem para um sistema de segurança ou gerar ruído para simular um cão latindo, por exemplo.

Alguns sistemas não podem enviar ou receber webhooks, mas possuem uma interface de linha de comando. Um servidor de webhook fornece integração de webhook, possibilitando a configuração de pontos finais da web ou serviços de chamada na web. Empresas como Zapier, Collect2 e Webhook. site fornecem esse tipo de integração como um serviço (IaaS).

Aceite apenas solicitações assinadas

Alguns provedores de webhook (por exemplo, Stripe) pode "assinar" solicitações de webhook.

Dado isso assinatura digital, você pode verificar se a solicitação do webhook foi gerada pelo provedor do webhook e não por algum servidor atuando como o provedor de webhook.

Como a assinatura é específica para todas as solicitações de webhook, também ajuda a validar que a mensagem não foi interceptada e modificada por alguém entre você e o provedor de webhook.

O provedor normalmente documenta como validar as assinaturas geradas. Mas nem todos os provedores geram assinaturas.

Veja também:

Confira mais artigos relacionados e obtenha ainda mais dicas de controle para suas contas.