Quelle est la différence entre un webhook et une API?


15

Les programmeurs qui font une demande à une API recevront alors une réponse. Par exemple, en utilisant l'API Web pour envoyer un e-mail, vous transmettriez le contenu de l'e-mail avec la demande. Si tout se passe bien, vous recevrez une réponse déclarant le succès.

Pour utiliser un webhook , vous enregistrez une URL auprès de la société fournissant le service. Cette URL est un endroit dans votre application qui acceptera les données et en fera quelque chose. Dans certains cas, vous pouvez indiquer au fournisseur les situations dans lesquelles vous souhaitez recevoir des données. Chaque fois qu'il y a quelque chose de nouveau, le webhook l'enverra à votre URL.

Donc, ils font essentiellement la même chose.

Ma question est la suivante: quelle est la différence entre webhook et api?

Pas dans les termes WEBHOOK IS ____ et API IS ______.

Je sais ce que c'est. Je suis intéressé par les principales différences et quand en utiliser un et quand en utiliser un autre.

Réponses:


15

La première et principale différence entre elles est qu'avec la plupart des API, il y a une demande suivie d'une réponse. Aucune demande n'est requise pour un webhook, il envoie simplement les données lorsqu'elles sont disponibles.

Vue simple:

L'API est une interface vers vos données sur example.com. L'API est utilisée depuis votre serveur vers la plateforme example.com et peut être utilisée pour répertorier, créer, modifier ou supprimer des éléments.

Les webhooks sont des appels automatisés de example.com vers votre serveur déclenchés lorsqu'un événement spécifique se produit dans example.com. Par exemple, lorsqu'une tâche est terminée et que vous voulez en savoir en temps réel, nous ferons une demande POST à ​​l'URL que vous avez enregistrée pour le webhook EVENT.COMPLETED dans votre exemple de compte.

Donc, en un mot: l'API est l'endroit où vous dites des choses example.com et les Webhooks est où example.com vous dit des choses.

En regardant plus en profondeur:

Le SaaS est un concept - l'idée d'un logiciel qui existe dans le cloud et le client est généralement un navigateur. Une application SaaS est définie par les fonctions qu'elle peut fournir à un utilisateur (par exemple Salesforce fournit une base de données qui peut être utilisée pour stocker les informations client) les fonctions disponibles sont déterminées par le but de l'application (par exemple: CRM, Email Blaster, CMS , etc.).

Une API est un moyen pour les applications SaaS de se connecter à d'autres applications via une méthode de communication commune (ReST, SOAP, JSON, etc.). Une API ne peut pas parler directement à une autre API. Une API peut être utilisée par une application codée ou un middleware qui agit comme un pont entre deux API et exécute le thread d'exécution. Par exemple - NetSuite et Salesforce ont toutes deux une API SOAP, mais pour qu'elles communiquent - vous souhaitez utiliser un logiciel middleware qui peut interagir avec les deux systèmes et être configuré pour extraire de nouveaux enregistrements de contact via l'API de Salesforce et pousser de nouveaux enregistrements vers NetSuite via c'est l'API toutes les heures.

Webhooks est un autre protocole de communication pour les applications SaaS qui permet la communication entre les applications, mais simplement en utilisant HTTP POSTS pour contrôler le thread d'exécution. Les webhooks permettent à une application de communiquer directement entre elles, sans utiliser de middleware. Par exemple - lorsque vous soumettez un formulaire à WuFoo, il peut être configuré pour lancer un POST HTTP Webhooks vers un autre service et transmettre certaines valeurs de champ à partir de la soumission du formulaire. Les webhooks peuvent également être utilisés en conjonction avec une API - par exemple, après que le webhook a averti l'autre application que quelque chose s'est produit pour enregistrer l'ID X, cette application pourrait utiliser une API pour communiquer avec le service pour vérifier les nouvelles valeurs de champ ou modifier un état de un enregistrement.

Il est difficile d'avoir une API ou des webhooks sans avoir d'application SaaS. Cependant, vous pouvez facilement avoir une application SaaS qui n'utilise pas de webhooks ou une API (publique). De même, selon les fonctions de votre application SaaS, vous pouvez choisir d'utiliser des webhooks OU une API.


Merci! J'ai rejoint cette communauté juste pour voter pour votre réponse (et la question bien sûr!).
Kaushal28

11

L'API fait des choses lorsque vous le lui demandez, tandis que Webhook fait des choses de lui-même lorsque certains critères correspondent.

Donc, en résumé: l'API est l'endroit où vous nous dites des choses et les Webhooks est l'endroit où nous vous disons des choses.

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

Chaque fois qu'il y a quelque chose de nouveau, le webhook l'enverra à votre URL.

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


5

Je vais illustrer cela avec un exemple concret: les paiements par carte de crédit.

Lorsque votre site souhaite débiter une carte de crédit, vous appelez une API sur le processeur de votre carte de crédit. Le processeur de carte de crédit facture ensuite la carte de crédit renvoie un état de réussite ou d'échec à cet appel API.

Le processeur de carte de crédit peut avoir besoin d'un moyen de mettre à jour votre site à propos de cette transaction ultérieurement. Par exemple, la transaction peut être annulée la semaine prochaine. Votre processeur de carte de crédit pourrait simplement vous envoyer un e-mail à ce sujet. Les webhooks sont une autre façon de les gérer . Vous indiquez à votre processeur de carte de crédit une URL sur votre site qui peut vous envoyer des données et les envoyer. Lorsque la transaction est annulée, un processeur de carte de crédit qui prend en charge les hooks Web contactera votre site à l'URL que vous fournissez et vous enverra des données dans un format lisible par machine que vous pouvez analyser et faire traiter automatiquement votre application Web.

Un webhook est un mécanisme de rappel pour une API. Vous implémentez essentiellement une API pour les rappels asynchrones conjointement avec une API que vous appelez.


"Vous implémentez essentiellement une API pour les rappels asynchrones ..." - cela ne devrait-il pas être "webhook"?
MrWhite

1
J'essaie de dire qu'un webhook est une API que vous implémentez. Vous appelez une API. Un webhook est une API que vous implémentez pour qu'ils vous appellent.
Stephen Ostermiller

2

Voici un exemple de la différence entre webhook et API en termes simples:

Supposons que vous ayez commandé quelque chose en ligne et que la livraison ait lieu aujourd'hui, mais vous êtes au travail, vous avez donc dit à votre femme de chambre de recevoir le colis une fois arrivé. Le but est, vous devez être averti si le colis est déjà arrivé. C'est ce qui se passe dans:

Webhook

  • Une fois le colis arrivé, votre femme de chambre vous appellera immédiatement pour vous informer que le colis est déjà arrivé.

API

  • Le colis est déjà arrivé mais vous ne savez toujours pas. Vous avez ensuite appelé votre femme de chambre pour lui demander si c'était déjà arrivé, puis elle a dit oui.

La différence réside dans l' API, vous avez besoin d'un déclencheur pour récupérer des données comme l'appel que vous avez fait, tandis que le webhook vous avertit automatiquement une fois que de nouvelles données arrivent sans avoir besoin d'un déclencheur.


0

un Api est simplement une petite application qui est utilisée pour accéder à certaines fonctionnalités ou données dans n'importe quelle plate-forme de développement à partir d'une plate-forme déjà existante, par exemple: vous souhaitez utiliser le service de géolocalisation Google (plate-forme déjà existante) sur votre site Web (développement plate-forme), au lieu de reconstruire l'ensemble du système et de configurer votre propre satellite, vous utilisez un petit Api pour accéder à cette fonctionnalité à partir de Google.

Alors que le hook Web est simplement une URL de retour ou de secours vers votre site Web ou votre plate-forme où la réponse et les données que vous avez demandées en utilisant l' API sont envoyées et où vous collectez les informations que vous recherchez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.