Hace poco me fui de acampada y, al estar fuera de la red, las capacidades de mi smartphone eran bastante limitadas. Mi aplicación meteorológica no rellenaba ningún dato, no podía ver mi ubicación en Apple Maps y no podía enviar ni recibir mensajes directos. Una pesadilla de la era digital.

Ahora imagina que tienes una conexión perfecta a Internet y al móvil, pero te encuentras exactamente con el mismo problema: así de inútil sería nuestra tecnología sin las interfaces de programación de aplicaciones (API) y los webhooks. Ambos son esenciales para la comunicación entre programas informáticos, pero ¿en qué se diferencian los webhooks de las API? He aquí la esencia:

  • Las API abren la puerta a la comunicación de ida y vuelta entre aplicaciones de software a través de peticiones: la aplicación A solicita información a la aplicación B, y la aplicación B decide si envía la información.
  • Un webhook es un tipo de API basada en eventos. En lugar de enviar información en respuesta a la solicitud de otra aplicación, un webhook envía información o realiza una función específica en respuesta a un desencadenante, como la hora del día, hacer clic en un botón o recibir el envío de un formulario. Dado que la aplicación que envía los datos inicia la transferencia, los webhooks suelen denominarse «API inversas».

En esta guía, voy a desmitificar los webhooks y las APIs para que puedas hacer que tus aplicaciones hablen y envíen datos automáticamente de una a otra.

Cuándo utilizar un webhook

Los webhooks no requieren mucho «diálogo»: los datos fluyen en una dirección en lugar de dos. No son más que puntos finales de API especificados por un desarrollador, lo que los hace bastante sencillos en comparación con las API completas.

Como están programadas para no tener acceso a tanta información como los sistemas API completos, sus usos son bastante limitados. Sin embargo, resultan útiles cuando un usuario quiere completar una función de la aplicación sin tener que abrirla. He aquí algunas ideas para cuando un webhook tendría más sentido:

  • Actualizar el estado de suscripción del usuario en su sistema de gestión de relaciones con los clientes (CRM) cuando un usuario cancela su suscripción
  • Enviar recordatorios automáticos sobre reuniones cinco minutos antes de que empiecen
  • Envío de notificaciones por correo electrónico que informen a los usuarios que intenten ponerse en contacto con un empleado del INPI sobre la fecha de regreso
  • Notificar a un usuario que posee acciones de una empresa cuando el precio de la acción cae un 5% en un día

Cuando una solicitud de webhook no está formateada correctamente, no obtendrá una respuesta detallada que le indique por qué falló su función – sólo obtendrá un código de estado como un 200 o un 404. Por esta razón, es importante que pruebes tu webhook (y lo compruebes regularmente) para asegurarte de que funciona correctamente.

Por ejemplo, quizás quieras que un webhook añada el nombre de un usuario a tu CRM, pero el webhook puede configurarse para que sólo acepte un formato de nombre específico (por ejemplo, sólo dos conjuntos de caracteres – «nombre» y «apellido»). En este caso, cualquier usuario que introduzca un segundo nombre o tenga dos nombres (por ejemplo, «George Michael Smith») confundiría al webhook y no se añadiría al CRM. Volver a comprobar la configuración del webhook puede identificar este problema y evitar la pérdida de datos.

Ejemplos de configuración de webhooks

Cadena de suministro FedEx

FedEx Supply Chain es un proveedor logístico y filial de FedEx especializado en almacenamiento y distribución. Puede generar una URL webhook en la aplicación para realizar un seguimiento de los eventos que se produzcan en ella. De este modo, no tendrás que realizar llamadas frecuentes para obtener nuevos datos, sino que simplemente recibirás las actualizaciones a medida que se produzcan. Por ejemplo, se puede programar un webhook para enviar actualizaciones a medida que un producto pasa por las etapas del proceso de distribución.

Mailchimp

Con una cuenta transaccional de Mailchimp de pago, puede utilizar webhooks para enviar datos de correo electrónico a sus aplicaciones y hacer que respondan como desee. Por ejemplo, si un destinatario hace clic en un enlace de un correo electrónico de marketing, puede hacer que Mailchimp envíe estos datos de clic a otra aplicación que utilice para segmentar su audiencia y realizar un seguimiento de su comportamiento.

Cuándo utilizar una API

Las API mantienen la comunicación entre tus aplicaciones en un formato legible por máquinas (normalmente JSON o XML), por lo que son tu mejor opción cuando trabajas con datos que sabes que cambian o se actualizan constantemente. Piense en datos meteorológicos o de localización: casi siempre hay algo nuevo que cargar.

La naturaleza comunicativa de las API también les permite realizar tareas que los webhooks por sí solos no pueden. He aquí algunos ejemplos comunes en los que una API sería preferible a un webhook:

  • Seguimiento de envíos para una empresa de comercio electrónico
  • Extracción de datos de tráfico para una aplicación de cartografía
  • Utilizar una aplicación MFA de terceros para iniciar sesión en el portal de su empresa

Ejemplos de API en acción

PayPal

A través de las API, PayPal permite a sus clientes realizar una gran variedad de transacciones, como pagos, suscripciones, facturación y mucho más. Es lógico que PayPal recurra a las API. Es un monedero digital, lo que significa que necesita comunicarse con su(s) banco(s), así como con numerosos sistemas de punto de venta, para completar las transacciones.

Spotify

Como cualquier otra aplicación de música en streaming, Spotify depende de las API para recuperar datos musicales y mantener las listas de reproducción de los usuarios. Cuando un usuario busca un artista, álbum o canción concretos, Spotify muestra los resultados de su búsqueda a través de una API. La plataforma también extrae datos del historial de escucha del usuario para organizar mezclas y listas de reproducción diseñadas específicamente para él.

Uber

Uber

No es de extrañar que Uber utilice API para funcionar. Hay mucha comunicación entre las bases de datos, los usuarios y el software para que la aplicación identifique la ubicación del usuario y del conductor, recopile datos sobre el trayecto y la valoración y los comparta con ambas partes.

Preguntas frecuentes: Webhook vs. API

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

Las API son manuales: hay que solicitarlas para extraer o modificar datos. Los webhooks envían datos automáticamente en respuesta a un evento específico, sin ninguna solicitud de otro software.

Los webhooks son un subconjunto de las API y, por tanto, están mucho más limitados que éstas: sólo pueden enviar información. Las API son más versátiles. Son el intermediario entre distintas piezas de software, de modo que cuando tú, como usuario, intentas conocer o modificar algo en otra pieza de software, la API comprueba si tienes derecho a hacerlo y aprueba o deniega la solicitud.

¿Es un webhook una API REST?

REST es un conjunto de reglas o restricciones arquitectónicas impuestas a las API, mientras que un webhook es un subconjunto de una API. Dado que una API REST, a pesar de sus restricciones, requiere que un usuario solicite datos para que esos datos sean enviados, no es lo mismo que un webhook, que no requiere una solicitud de datos.

¿Qué es mejor?

Ni los webhooks ni las API son mejores el uno que el otro, simplemente se utilizan para circunstancias diferentes. Sin duda, las API son más versátiles que los webhooks, mientras que éstos son más sencillos y ligeros.

Webhook vs. API: Conclusión

Los webhooks y las API están muy extendidos en todo el software que utilizamos a diario, y son tan similares que sus usos individuales pueden resultar confusos. Dado que un webhook es un tipo específico de API, la confusión tiene sentido.

En resumen, los webhooks permiten compartir datos de forma ligera entre programas cuando se produce una acción concreta, mientras que las API requieren la intervención del usuario en un extremo para solicitar o modificar datos en el otro.

Si quieres enviar una notificación o actualizar información en cuanto se cumpla un determinado criterio, evita las complicaciones de una API: basta con implementar un simple webhook. Si trabajas con datos flotantes o quieres modificar datos en lugar de simplemente enviar una notificación, probablemente necesitarás implementar una API.

A la hora de elegir, lo más importante es saber si los datos a los que quieres acceder se actualizan constantemente. Si es así, una API probablemente tendrá más sentido que un webhook. Si no es así, considere la posibilidad de implementar un webhook.

Al final, no hay necesidad de iniciar un debate webhook vs API – ambos son necesarios para que las aplicaciones que nos gustan funcionen.