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

15

Os programadores que fizerem uma solicitação para uma API receberão uma resposta. Por exemplo, usando a API da Web para enviar um email, você passaria o conteúdo do email com a solicitação. Se tudo der certo, você receberá uma resposta declarando êxito.

Para usar um webhook , você registra um URL na empresa que fornece o serviço. Esse URL é um local no seu aplicativo que aceita os dados e faz algo com eles. Em alguns casos, você pode informar ao provedor as situações em que deseja receber dados. Sempre que houver algo novo, o webhook o enviará para o seu URL.

Então, eles estão basicamente fazendo a mesma coisa.

Minha pergunta é a seguinte: Qual é a diferença entre webhook e api?

Não nos termos WEBHOOK IS ____ e API IS ______.

Eu sei o que eles são. Estou interessado nas principais diferenças e quando usar uma e quando usar outra.

Josip Ivic
fonte

Respostas:

15

A primeira e principal diferença entre eles é que, na maioria das APIs, há uma solicitação seguida por uma resposta. Nenhuma solicitação é necessária para um webhook, apenas envia os dados quando estão disponíveis.

Visualização simples:

A API é uma interface para seus dados em example.com. A API é usada do servidor na plataforma example.com e pode ser usada para listar, criar, editar ou excluir itens.

Webhooks são chamadas automatizadas de example.com para o servidor acionadas quando um evento específico acontece em example.com. Por exemplo, quando uma tarefa é concluída e você deseja saber sobre isso em tempo real, faremos uma solicitação POST para o URL que você registrou para o webhook EVENT.COMPLETED em sua conta de exemplo.

Então, em poucas palavras: a API é onde você diz coisas para example.com e os Webhooks é onde example.com conta para você.

Olhando mais profundamente:

SaaS é um conceito - a idéia de software que existe na nuvem e o cliente geralmente é um navegador. Um aplicativo SaaS é definido pelas funções que ele pode fornecer a um usuário (por exemplo, o Salesforce fornece um banco de dados que pode ser usado para armazenar informações do cliente). As funções disponíveis são determinadas pelo objetivo do aplicativo (por exemplo: CRM, Email Blaster, CMS etc.).

Uma API é uma maneira de os aplicativos SaaS serem conectados a outros aplicativos por meio de um método de comunicação comum (ReST, SOAP, JSON etc.). Uma API não pode falar diretamente com outra API. Uma API pode ser usada por um aplicativo ou middleware codificado que atua como uma ponte entre duas APIs e executa o encadeamento de execução. Por exemplo - o NetSuite e o Salesforce têm uma API SOAP, mas para eles se comunicarem - você deseja usar um software de middleware que possa interagir com os dois sistemas e ser configurado para obter novos registros de contato através da API do Salesforce e enviar novos registros para o NetSuite através é API a cada hora.

O Webhooks é outro protocolo de comunicação para aplicativos SaaS que permite a comunicação entre aplicativos, mas simplesmente usando HTTP POSTS para controlar o encadeamento de execução. Os Webhooks permitem que um aplicativo fale diretamente um com o outro, sem usar o middleware. Por exemplo - quando você envia um formulário ao WuFoo, ele pode ser configurado para iniciar um HTTP POST de webhooks para outro serviço e passar alguns valores de campo do envio do formulário. Os webhooks também podem ser usados ​​em conjunto com uma API - por exemplo, depois que o webhook notifica o outro aplicativo sobre o registro do ID X, esse aplicativo pode usar uma API para se comunicar com o serviço para verificar os novos valores de campo ou modificar um status de uma gravação.

É difícil ter uma API ou webhooks sem ter um aplicativo SaaS. No entanto, você pode facilmente ter um aplicativo SaaS que não use webhooks ou uma API (pública). Da mesma forma, dependendo das funções do seu aplicativo SaaS, você pode optar por usar webhooks OU uma API.

knif3r
fonte
Obrigado! Entrei nesta comunidade apenas para votar sua resposta (e a pergunta, é claro!).
Kaushal28 16/03
11

A API está fazendo coisas quando você solicita, enquanto o Webhook faz coisas por conta própria quando determinados critérios correspondem.

Então, em poucas palavras: a API é onde você nos diz as coisas e o Webhooks é onde nós dizemos as coisas.

via http://apidocs.teamwork.com/article/466-whats-the-difference-between-the-api-and-webhooks

Sempre que houver algo novo, o webhook o enviará para o seu URL.

via https://sendgrid.com/blog/webhook-vs-api-whats-difference/

Cova
fonte
5

Ilustrarei isso com um exemplo concreto: pagamentos com cartão de crédito.

Quando seu site deseja cobrar um cartão de crédito, você chama uma API no seu processador de cartão de crédito. O processador do cartão de crédito cobra o retorno do cartão de crédito com status de êxito ou falha para a chamada da API.

O processador do cartão de crédito pode precisar de alguma maneira de atualizar seu site sobre essa transação posteriormente. Por exemplo, a transação pode ser revertida na próxima semana. O processador do seu cartão de crédito pode enviar um e-mail sobre isso. Outra maneira de lidar com isso é webhooks . Você informa ao processador do cartão de crédito um URL no site que ele pode acessar e enviar dados. Quando a transação é revertida, um processador de cartão de crédito que suporta ganchos da Web entrará em contato com o site na URL que você fornecer e enviará dados em formato legível por máquina que você pode analisar e fazer com que seu aplicativo da Web lide automaticamente.

Um webhook é um mecanismo de retorno de chamada para uma API. Você basicamente implementa uma API para retornos de chamada assíncronos em conjunto com uma API que está chamando.

Stephen Ostermiller
fonte
"Você basicamente implementa uma API para retornos de chamada assíncronos ..." - não deveria ser "webhook"?
MrWhite 26/01/19
1
Estou tentando dizer que um webhook é uma API que você implementa. Você chama uma API. Um webhook é uma API que você implementa para que eles o chamem.
Stephen Ostermiller
2

Aqui está um exemplo da diferença entre webhook e API no termo leigo:

Digamos que você tenha pedido algo on-line e a entrega seja hoje, mas você está no trabalho e disse à sua empregada que pegasse o pacote assim que ele chegasse. O objetivo é que você deve ser notificado se o pacote já chegou. É o que acontece em:

Webhook

  • Assim que o pacote chegar, sua empregada telefonará imediatamente para notificar que o pacote já chegou.

API

  • Os pacotes já chegaram, mas você ainda não sabe. Você então ligou para sua empregada para perguntar se já havia chegado, e ela diz que sim.

A diferença está na API: você precisa de um gatilho para buscar dados como a chamada que você fez, enquanto o webhook o notifica automaticamente assim que um novo dado chega sem a necessidade de um gatilho.

Comunidade
fonte
0

Uma API é simplesmente um pequeno aplicativo usado para obter acesso a determinados recursos ou dados em qualquer plataforma de desenvolvimento a partir de uma plataforma já existente, por exemplo: você deseja usar o serviço de localização geográfica do Google (plataforma já existente) em seu site (desenvolvendo plataforma), em vez de reconstruir todo o sistema e começar a configurar seu próprio satélite, você usa uma pequena API para acessar esse recurso do google.

Embora o gancho da Web seja simplesmente um URL de retorno ou de retorno ao seu site ou plataforma, para onde a resposta e os dados solicitados usando a API são enviados e coletamos as informações que você procura.

Abel Akponine
fonte