Recentemente fui acampar e, estando fora da rede, as capacidades do meu smartphone eram bastante limitadas. Meu aplicativo de clima não preencheu nenhum dado, não consegui ver minha localização no Apple Maps e não pude enviar ou receber mensagens diretas. Um pesadelo da era digital.

Agora imagine ter internet e conexão de celular perfeitas, mas lidar exatamente com o mesmo problema – é o quão inútil seria nossa tecnologia sem interfaces de programação de aplicativos (APIs) e webhooks. Ambos são essenciais para a comunicação entre softwares, então como os webhooks versus APIs diferem? Aqui está a essência:

  • As APIs abrem a porta para a comunicação de ida e volta entre aplicativos de software por meio de solicitações — o aplicativo A solicita informações do aplicativo B e o aplicativo B decide se deseja enviar as informações.
  • Um webhook é um tipo de API orientada a eventos. Em vez de enviar informações em resposta à solicitação de outro aplicativo, um webhook envia informações ou executa uma função específica em resposta a um gatilho, como a hora do dia, clicar em um botão ou receber um envio de formulário. Como o aplicativo que envia os dados inicia a transferência, os webhooks geralmente são chamados de “APIs reversas”.

Neste guia, vou desmistificar webhooks e APIs para que você possa fazer com que seus aplicativos conversem e enviem dados automaticamente de um para outro.

Quando usar um webhook

Webhooks não exigem muita “conversa” — os dados fluem em uma direção, em vez de duas. Eles são apenas pontos de extremidade de API especificados por um desenvolvedor, o que os torna bastante simples em comparação com APIs completas.

Como eles são programados para não ter acesso a tantas informações quanto sistemas de API inteiros, seus usos são bastante limitados. No entanto, eles se mostram úteis quando um usuário deseja concluir uma função do aplicativo sem precisar abrir o aplicativo. Aqui estão algumas ideias para quando um webhook faria mais sentido:

  • Atualizando o status da assinatura do usuário em seu sistema de gerenciamento de relacionamento com o cliente (CRM) quando um usuário cancela a assinatura
  • Enviar lembretes automáticos sobre reuniões cinco minutos antes do seu início
  • Envio de notificações por e-mail que informam aos usuários que tentam entrar em contato com um funcionário no INPI sobre a data de devolução
  • Notificar um usuário que possui ações de uma empresa quando o preço das ações cai 5% em um dia

Quando uma solicitação de webhook não é formatada corretamente, você não receberá uma resposta detalhada informando por que sua função falhou — você apenas receberá um código de status como um 200 ou um 404. Por esse motivo, é importante testar seu webhook (e verificá-lo regularmente) para se certificar de que ele está funcionando corretamente.

Por exemplo, talvez você queira que um webhook adicione o nome de um usuário ao seu CRM, mas o webhook pode ser configurado para aceitar apenas um formato de nome específico (por exemplo, apenas dois conjuntos de caracteres — “nome” e “sobrenome”). Nesse caso, todo usuário que inserir um nome do meio ou que tiver dois nomes próprios (por exemplo, “George Michael Smith”) confundiria o webhook e não seria adicionado ao CRM. Verificar novamente a configuração do webhook pode identificar esse problema e evitar a perda de dados.

Exemplos de configuração do Webhook

Cadeia de Suprimentos da FedEx

A FedEx Supply Chain é um fornecedor de logística e subsidiária da FedEx especializada em armazenagem e distribuição. Você pode gerar uma URL de webhook no aplicativo para acompanhar os eventos que acontecem nele. Dessa forma, você não precisa fazer chamadas frequentes para obter dados novos — apenas recebe atualizações à medida que elas ocorrem. Por exemplo, um webhook pode ser programado para enviar atualizações à medida que um produto passa pelos estágios do processo de distribuição.

Mailchimp

Com uma conta transacional Mailchimp paga, você pode usar webhooks para enviar dados de e-mail para seus aplicativos e fazer com que eles respondam como quiser. Por exemplo, se um destinatário clicar em um link em um e-mail de marketing, você poderá fazer com que o Mailchimp envie esses dados de clique para outro aplicativo que você usa para segmentar seu público e acompanhar seu comportamento.

Quando usar uma API

As APIs mantêm a comunicação fluindo entre seus aplicativos em um formato legível por máquina (geralmente JSON ou XML), por isso são sua melhor aposta ao trabalhar com dados que você sabe que estão em constante mudança ou atualização. Pense em dados baseados em clima e localização — quase sempre há algo novo para carregar.

A natureza comunicativa das APIs também permite que elas executem tarefas que os webhooks sozinhos não conseguem. Aqui estão alguns exemplos comuns de casos em que uma API seria preferível a um webhook:

  • Rastreamento de remessas para uma empresa de comércio eletrônico
  • Extraindo dados de tráfego para um aplicativo de mapas
  • Usando um aplicativo MFA de terceiros para fazer login no portal da sua empresa

Exemplos de APIs em ação

PayPal 

Por meio de APIs, a PayPal permite que seus clientes concluam uma variedade de transações, incluindo pagamentos, assinaturas, faturamento e muito mais. Faz sentido por que PayPal depende de APIs. É uma carteira digital, o que significa que ela precisa se comunicar com seu(s) banco(s), bem como inúmeros sistemas de PDV, a fim de concluir transações.

Spotify

Como qualquer outro aplicativo de streaming de música, o Spotify depende de APIs para recuperar dados de música e manter as listas de reprodução dos usuários. Quando um usuário pesquisa por um artista, álbum ou faixa específica, o Spotify mostra os resultados da pesquisa do usuário por meio de uma API. A plataforma ainda extrai dados do histórico de audição de um usuário para organizar mixagens e playlists projetadas especificamente para eles.

Uber 

Uber 

Não deve ser surpresa que a Uber use APIs para funcionar. Há muita comunicação que precisa acontecer entre bancos de dados, usuários e software para que o aplicativo identifique a localização do usuário e do motorista, colete dados de viagem e classificação e compartilhe esses dados com ambas as partes.

Perguntas frequentes: Webhook vs. API

Qual é a principal diferença entre um webhook e uma API?

As APIs são manuais — elas precisam ser solicitadas a extrair ou modificar dados. Os Webhooks enviam dados automaticamente em resposta a um evento específico, sem qualquer solicitação de outro software.

Webhooks são um subconjunto de APIs e, portanto, são muito mais limitados do que APIs — eles só podem enviar informações. As APIs são mais versáteis. Eles são o intermediário entre diferentes softwares, portanto, quando você, como usuário, tenta aprender ou modificar algo em outro software, a API verifica se você tem o direito de fazer isso e aprova ou nega a solicitação.

Um webhook é apenas uma API REST?

REST é um conjunto de regras ou restrições arquitetônicas colocadas em APIs, enquanto um webhook é um subconjunto de uma API. Como uma API REST, apesar de suas restrições, exige que um usuário solicite dados para que esses dados sejam enviados, ela não é o mesmo que um webhook, que não requer uma solicitação de dados.

Qual é melhor?

Nem webhooks nem APIs são melhores do que os outros — eles são usados apenas para circunstâncias diferentes. As APIs são certamente mais versáteis do que os webhooks, enquanto os webhooks são mais simples e leves.

Webhook vs. API: O resultado final

Webhooks e APIs são amplamente utilizados em todo o software que usamos diariamente, e são tão semelhantes que seus usos individuais podem ficar confusos. Como um webhook é apenas um tipo específico de API, a confusão faz sentido.

Para resumir, os webhooks permitem o compartilhamento leve de dados entre softwares quando uma ação específica ocorre, enquanto as APIs exigem a entrada do usuário em uma extremidade para solicitar ou modificar dados na outra extremidade.

Se você deseja enviar uma notificação ou atualizar informações assim que um determinado critério for atendido, evite o incômodo de uma API — basta implementar um webhook simples. Se você estiver lidando com dados flutuantes ou quiser modificar dados em vez de simplesmente enviar uma notificação, provavelmente precisará implementar uma API.

Ao escolher entre os dois, a pergunta mais importante a ser feita é se os dados que você deseja acessar estão sendo constantemente atualizados. Se for, uma API provavelmente fará mais sentido do que um webhook. Se não estiver, considere implementar um webhook.

No final, não há necessidade de iniciar um debate webhook vs. API – ambos são necessários para que os aplicativos que amamos funcionem.