¿Cuál es la diferencia entre un webhook y una API?

15

Los programadores que realicen una solicitud a una API recibirán una respuesta. Por ejemplo, al usar la API web para enviar un correo electrónico, pasaría el contenido del correo electrónico con la solicitud. Si todo va bien, recibirá una respuesta que declara el éxito.

Para usar un webhook , debe registrar una URL con la compañía que brinda el servicio. Esa URL es un lugar dentro de su aplicación que aceptará los datos y hará algo con ellos. En algunos casos, puede informarle al proveedor las situaciones en las que desea recibir datos. Siempre que haya algo nuevo, el webhook lo enviará a su URL.

Entonces, básicamente están haciendo lo mismo.

Mi pregunta es esta: ¿Cuál es la diferencia entre webhook y api?

No en los términos WEBHOOK IS ____ y ​​API IS ______.

Yo se lo que son. Estoy interesado en las diferencias clave y cuándo usar una, y cuándo usar otra.

Josip Ivic
fuente

Respuestas:

15

La primera y principal diferencia entre ellos es que con la mayoría de las API hay una solicitud seguida de una respuesta. No se requiere ninguna solicitud para un webhook, solo envía los datos cuando están disponibles.

Vista simple:

La API es una interfaz para sus datos en example.com. La API se usa desde su servidor a la plataforma example.com y se puede usar para Listar, Crear, Editar o Eliminar elementos.

Webhooks son llamadas automatizadas de example.com a su servidor que se activan cuando ocurre un evento específico en example.com. Por ejemplo, cuando se completa una tarea y desea conocerla en tiempo real, haremos una solicitud POST a la URL que ha registrado para el webhook EVENT.COMPLETED en su cuenta de ejemplo.

En pocas palabras: la API es donde usted dice cosas de example.com y Webhooks es donde example.com le dice cosas.

Mirando más en profundidad:

SaaS es un concepto: la idea del software que existe en la nube y el cliente generalmente es un navegador. Una aplicación SaaS se define por las funciones que puede proporcionar a un usuario (por ejemplo, Salesforce proporciona una base de datos que se puede utilizar para almacenar información del cliente). Las funciones disponibles están determinadas por el propósito de la aplicación (es decir: CRM, Email Blaster, CMS , etc.)

Una API es una forma de que las aplicaciones SaaS se conecten con otras aplicaciones a través de un método de comunicación común (ReST, SOAP, JSON, etc.). Una API no puede hablar directamente con otra API. Una aplicación codificada o middleware puede usar una API que actúa como un puente entre dos API y ejecuta el hilo de ejecución. Por ejemplo, tanto NetSuite como Salesforce tienen una API SOAP, pero para que se comuniquen, desearía utilizar un software de middleware que pueda interactuar con ambos sistemas y estar configurado para extraer nuevos registros de contactos a través de la API de Salesforce y enviar nuevos registros a NetSuite Es API cada hora.

Webhooks es otro protocolo de comunicación para aplicaciones SaaS que permite la comunicación entre aplicaciones, pero simplemente usa HTTP POSTS para controlar el hilo de ejecución. Los webhooks permiten que una aplicación se hable directamente entre sí, sin usar middleware. Por ejemplo, cuando envía un formulario a WuFoo, se puede configurar para iniciar un HTTP POST de webhooks a otro servicio y pasar algunos valores de campo desde el envío del formulario. Los webhooks también se pueden usar junto con una API; por ejemplo, después de que el webhook notifique a la otra aplicación que sucedió algo para registrar la identificación X, esa aplicación podría usar una API para comunicarse con el servicio para verificar los nuevos valores de campo o modificar un estado de un registro.

Es difícil tener una API o webhooks sin tener una aplicación SaaS. Sin embargo, puede tener fácilmente una aplicación SaaS que no use webhooks o una API (pública). De manera similar, dependiendo de las funciones de su aplicación SaaS, puede elegir usar webhooks O una API.

knif3r
fuente
¡Gracias! Me uní a esta comunidad solo para votar tu respuesta (¡y la pregunta, por supuesto!).
Kaushal28
5

Ilustraré esto con un ejemplo concreto: pagos con tarjeta de crédito.

Cuando su sitio quiere cargar una tarjeta de crédito, usted llama a una API en el procesador de su tarjeta de crédito. El procesador de la tarjeta de crédito luego carga la tarjeta de crédito y devuelve un estado de éxito o falla a esa llamada API.

Es posible que el procesador de la tarjeta de crédito necesite alguna forma de actualizar su sitio sobre esta transacción más adelante. Por ejemplo, la transacción puede revertirse la próxima semana. El procesador de su tarjeta de crédito podría enviarle un correo electrónico al respecto. Otra forma de lidiar con esto es webhooks . Le dice a su procesador de tarjeta de crédito una URL en su sitio que pueden golpear y enviarle datos. Cuando se invierte la transacción, un procesador de tarjeta de crédito que admita enlaces web se comunicará con su sitio en la URL que proporcione y le enviará datos en formato legible por máquina que puede analizar y hacer que su aplicación web se ocupe automáticamente.

Un webhook es un mecanismo de devolución de llamada para una API. Básicamente implementa una API para devoluciones de llamada asíncronas junto con una API a la que está llamando.

Stephen Ostermiller
fuente
"Básicamente implementas una API para devoluciones de llamada asincrónicas ..." - ¿no debería ser eso "webhook"?
MrWhite
1
Estoy tratando de decir que un webhook es una API que implementas. Llamas a una API. Un webhook es una API que implementa para que lo llamen.
Stephen Ostermiller
2

Aquí hay un ejemplo de la diferencia entre webhook y API en términos simples:

Digamos que ordenó algo en línea y la entrega sería hoy pero está en el trabajo, por lo que le dijo a su criada que obtenga el paquete una vez que llegue. El objetivo es que debe ser notificado si el paquete ya llegó. Esto es lo que sucede en:

Webhook

  • Una vez que llegó el paquete, su mucama lo llamará inmediatamente para notificarle que el paquete ya llegó.

API

  • El paquete ya llegó pero aún no lo sabes. Luego llamó a su doncella para preguntarle si ya había llegado, luego ella dijo que sí.

La diferencia es que en la API necesita un disparador para recuperar datos como la llamada que realizó, mientras que webhook lo notifica automáticamente una vez que llegan nuevos datos sin la necesidad de un disparador.

Comunidad
fuente
0

una Api es simplemente una pequeña aplicación que se utiliza para obtener acceso a ciertas funciones o datos en cualquier plataforma de desarrollo desde una plataforma ya existente, por ejemplo: desea utilizar el servicio de ubicación geográfica de Google (plataforma ya existente) en su sitio web (en desarrollo plataforma), en lugar de reconstruir todo el sistema y configurar su propio satélite, utiliza una pequeña API para acceder a esa función desde Google.

Si bien Web hook es simplemente una URL de retorno o retroceso a su sitio web o plataforma donde se envía la respuesta y los datos que solicitó utilizando la API y allí recopila la información que busca.

Abel Akponine
fuente