Un webhook es un concepto API que está creciendo en popularidad. A medida que los eventos pueden describir cada vez más lo que hacemos en la web, los webhooks se están volviendo aún más aplicables. Son increíblemente útiles y son una forma de implementación de reacciones de eventos.
Entonces, ¿qué es exactamente un webhook? Un Webhook (también llamado devolución de llamada web o API de Push HTTP) es una forma de que una aplicación proporcione a otras aplicaciones información en tiempo real. Un Webhook entrega datos a otras aplicaciones tal como sucede, lo que significa que obtiene datos de inmediato. A diferencia de las API típicas, donde necesitaría sondear para obtener datos con mucha frecuencia para obtenerlo en tiempo real. Esto hace que Webhooks sea mucho más eficiente tanto para el proveedor como para el consumidor. El único inconveniente de Webhooks es la dificultad de configurarlos inicialmente.
Los webhooks a veces se denominan «API inversas», ya que le dan lo que equivale a una especificación de API, y debe diseñar una API para que el Webhook lo use. El Webhook hará una solicitud HTTP a su aplicación (generalmente una publicación), y luego se le encargará de interpretarla.
El primer paso para consumir un webhook es dar al proveedor de webhook una URL para entregar solicitudes. Esto se hace con mayor frecuencia a través de un panel de backend o una API. Esto significa que también debe configurar una URL en su aplicación a la que sea accesible desde la web pública.
¿Qué es un webhook y cómo funciona?
En el mundo en línea altamente conectado de hoy, nada puede funcionar de manera óptima de forma óptima. Lograr una tarea (casi) siempre implica la participación de más de una entidad. Las aplicaciones de comercio electrónico deben comunicarse con los sistemas de pago, los sistemas de pago deben comunicarse con los sistemas bancarios, los sistemas bancarios deben comunicarse con las cuentas de los clientes… ¿Ves el patrón?
La capacidad de los sistemas en línea independientes para comunicarse entre sí y compartir datos es el núcleo de lo que hace que los servicios en línea sean valiosos hoy en día. En esta publicación, veremos Webhooks. Un webhook es una de las muchas formas de facilitar la comunicación entre los servicios en línea y al final de esta publicación, comprenderá completamente qué son los webhooks, cómo funcionan y cuándo usarlos.
Un webhook es una solicitud HTTP, activada por un evento en un sistema de origen y enviado a un sistema de destino, a menudo con una carga útil de datos. Los webhooks están automatizados, en otras palabras se envían automáticamente cuando su evento se dispara en el sistema de origen.
Esto proporciona una forma para que un sistema (la fuente) «hable» (solicitud HTTP) a otro sistema (el destino) cuando ocurre un evento y comparta información (solicitud de solicitud) sobre el evento que ocurrió.
Según la definición anterior, estoy seguro de que ya está teniendo una idea de para qué se utilizan los webhooks. En pocas palabras, los webhooks se utilizan para comunicar la ocurrencia de un evento en un sistema a otro sistema, y a menudo comparten datos sobre el evento. Sin embargo, un ejemplo siempre es más fácil de ilustrar, así que veamos un caso de webhooks en acción.
¿Cómo funciona un webhook?
Imagine un sistema de timbre, con un botón cerca de la puerta y una campana en su sala de estar. Cuando un visitante presiona el botón, escucha el anillo de timbre, que le dice que alguien está en la puerta, lo que significa que se envía una señal desde el botón al timbre.
Los webhooks funcionan en el mismo concepto. La puerta de entrada es una aplicación/sitio de terceros (proveedor de webhook) que envía una señal cuando ocurre un evento especificado. Y la campana en su sala de estar es lo que se llama el «oyente» en el mundo del software. El oyente es la URL que recibe los webhooks y realiza una acción predefinida después de eso.
Los webhooks son básicamente las devoluciones de llamada HTTP definidas por el usuario (o fragmentos de código pequeño vinculados a una aplicación web) que se activan por eventos específicos. Cada vez que ese evento de activación ocurre en el sitio fuente, el Webhook ve el evento, recopila los datos y lo envía a la URL especificada por usted en forma de una solicitud HTTP. Incluso puede configurar un evento en un sitio para activar una acción en otro sitio.
Como ya habría entendido, la diferencia fundamental entre las llamadas de API y los webhooks es que, mientras que el primero trabaja en mecanismos de salida basados en solicitudes, y el último funciona en mecanismos de salida basados en eventos.
Solo esta vez hagamos que sea una biblioteca en línea. Suponga que solo sus suscriptores pagados pueden ver sus publicaciones, pero cada suscriptor obtendrá una prueba gratuita de un mes. Supongamos que tiene cinco webhooks individuales configurados para cinco eventos diferentes de la siguiente manera:
- suscripción_created: enviado cuando se crea una suscripción
¿Qué es webhook site?
Los webhooks son una de las pocas formas en que las aplicaciones web pueden comunicarse entre sí.
Le permite enviar datos en tiempo real de una aplicación a otra cada vez que ocurre un evento determinado.
Por ejemplo, supongamos que ha creado una aplicación utilizando la API Foursquare que rastrea cuando las personas se registran en su restaurante. Idealmente, desea poder saludar a los clientes por su nombre y ofrecer una bebida de cortesía cuando se registran.
Lo que hace un webhook es notificarle cada vez que alguien se registra, por lo que podría ejecutar cualquier proceso que haya tenido en su aplicación una vez que se active este evento.
Luego, los datos se envían a través de la web desde la aplicación donde ocurrió originalmente el evento, a la aplicación de recepción que maneja los datos.
Aquí hay una representación visual de cómo se ve:
La aplicación receptora proporciona una URL de Webhook y actúa como un número de teléfono que la otra aplicación puede llamar cuando ocurre un evento.
Solo es más complicado que un número de teléfono, porque los datos sobre el evento se envían a la URL del webhook en formato JSON o XML. Esto se conoce como la «carga útil».
Aquí hay un ejemplo de cómo se ve una URL de webhook con la carga útil que lleva:
Ahora entendemos qué es un webhook y cómo funciona típicamente, ¿por qué debería usarlo?
Imagina que ejecuta un sitio de membresía. Cada vez que un cliente le paga a través de una pasarela de pago como Stripe, debe ingresar manualmente sus detalles en su aplicación de gestión de membresía. Esto es para que el usuario pueda iniciar sesión.
¿Qué es un web Hook?
Un webhook en el desarrollo web es un método para aumentar o alterar el comportamiento de una página web o aplicación web con devoluciones de llamada personalizadas. Estas devoluciones de llamada pueden ser mantenidas, modificadas y administradas por usuarios y desarrolladores de terceros que no necesariamente pueden estar afiliados al sitio web o aplicación de origen. El término «webhook» fue acuñado por Jeff Lindsay en 2007 desde el gancho del término de programación de computadoras. [1]
El formato suele ser JSON. La solicitud se realiza como una solicitud de publicación HTTP.
Los webhooks son «devoluciones HTTP definidas por el usuario». [2] Por lo general, se activan por algún evento, como empujar el código a un repositorio [3] o un comentario que se publica en un blog. [4] Cuando se produce ese evento, el sitio fuente realiza una solicitud HTTP a la URL configurada para el webhook. Los usuarios pueden configurarlos para que los eventos en un sitio invocen el comportamiento en otro.
Cuando el cliente (el sitio web o la aplicación de origen) realiza una llamada webhook al servidor del usuario de terceros, la solicitud de publicación entrante debe autenticarse para evitar un ataque de falsificación y su marca de tiempo verificada para evitar un ataque de repetición. [8] Se utilizan diferentes técnicas para autenticar al cliente:
- Se puede incluir una firma HMAC como encabezado HTTP. Github, [10] Stripe [11] y Facebook [12] usan esta técnica.
- La autenticación mutua de TLS se puede usar cuando se establece la conexión. El punto final (el servidor) puede verificar el certificado del cliente. [13]
El remitente puede optar por mantener una lista constante de direcciones IP desde las cuales se enviarán las solicitudes. Esta no es una medida de seguridad suficiente por sí sola, pero es útil para cuando el punto final receptor está detrás de un firewall o NAT.
¿Cómo utilizar webhook site?
¿Qué es un webhook y cómo funciona? Como mencionamos antes, cuando crea un webhook, está creando una notificación que se enviará a una determinada URL. Por lo general, esta dirección está configurada en el momento de la creación del Webhook y cada vez que se realiza una acción específica, se envía una notificación a esa dirección.
Para comprender cómo funcionan los webhooks, pensamos en un ejemplo simple, como un pago en línea. Cuando compra un servicio o producto en Internet, autoriza una operación de pago. El sitio verifica el depósito disponible en su tarjeta o cuenta y retira el monto. Cuando se realizó esta operación (comenzando el seguimiento de un evento en el sitio), recibirá un correo electrónico que confirma la compra realizada y, por lo general, también un SMS que informa el retiro de su saldo.
Los webhooks funcionan de esta manera: se crea una arquitectura especial para comunicarse entre diferentes sistemas. En términos técnicos, un webhook es una automatización, una devolución de llamada http que se activa cuando algo sucede, una notificación de tiempo real cuando ocurre un evento específico.
Entonces, ¿para qué sirven para webhook? Son herramientas que ayudan a ahorrar tiempo, y para esto se han vuelto muy populares. La mayoría de las aplicaciones lo usan y se pueden integrar fácilmente.
No es necesario ser desarrolladores expertos para poder aprovechar al máximo esta herramienta, pero es posible hacerlo también teniendo solo el conocimiento básico de algunos programas.
¿Cómo se hace un webhook?
Webhooks es una utilidad utilizada para enviar mensajes a los canales de texto sin necesidad de una aplicación Discord. Los webhooks son útiles para permitir que algo envíe mensajes sin requerir una aplicación Discord. También puede editar o eliminar directamente los mensajes que envió a través del Webhook. Hay dos estructuras para utilizar esta funcionalidad: Webhook y WebhookClient. WebhookClient es una versión extendida de un webhook, que le permite enviar mensajes a través de él sin necesidad de un cliente BOT.
Si desea leer sobre el uso de webhooks a través de la API sin discords.js, puede leer sobre ellos aquí en la nueva ventana.
Los bots reciben mensajes webhook en un canal de texto como de costumbre. Puede detectar si un webhook envió el mensaje verificando si el mensaje.webhookid no es nulo. En este ejemplo, devolvemos si un webhook envió el mensaje.
La obtención de webhook siempre utilizará colecciones y promesas. Si no comprende ninguno de los conceptos, revise y luego vuelve a esta sección. Puede leer sobre colecciones aquí, y promete aquí y aquí, en la nueva ventana.
Si no está utilizando un cliente BOT, puede obtener un Webhook creando una nueva instancia de WebhookClient y pasando la identificación y token al constructor. Estas credenciales no requieren que tenga una aplicación BOT, pero también ofrece información limitada en lugar de obtenerla utilizando un cliente autorizado.
Puede crear webhooks directamente a través del cliente Discord. Vaya a la configuración del servidor y verá una pestaña de integraciones.
¿Cómo gestionar webhooks?
Aprenda a crear un webhook, eligiendo los eventos que su webhook escuchará en GitHub y cómo configurar un servidor para recibir y administrar la carga útil del webhook.
Ahora que entendemos los conceptos básicos de los webhooks, pasemos por el proceso de construir nuestra propia integración funcionada con el webhook. En este tutorial, crearemos un webhook de repositorio que sea responsable de enumerar cuán popular es nuestro repositorio, en función de la cantidad de problemas que recibe por día.
Crear un webhook es un proceso de dos pasos. Primero deberá configurar cómo desea que su webhook se comporte a través de GitHub: qué eventos debe escuchar. Después de eso, configurará su servidor para recibir y administrar la carga útil.
Las API REST de Webhook le permiten administrar el repositorio, la organización y las aplicaciones webhooks. Puede usar esta API para enumerar las entregas de webhook para un webhook, o obtener y redirigir una entrega individual para un webhook, que puede integrarse en una aplicación o servicio externo. También puede usar la API REST para cambiar la configuración del webhook. Por ejemplo, puede modificar la URL de carga útil, el tipo de contenido, la verificación SSL y el secreto. Para más información, ver:
A los fines de este tutorial, vamos a usar un servidor local para recibir mensajes de GitHub. Entonces, en primer lugar, necesitamos exponer nuestro entorno de desarrollo local a Internet. Usaremos ngrok para hacer esto. Ngrok está disponible, de forma gratuita, para todos los principales sistemas operativos. Para obtener más información, consulte la página de descarga de Ngrok.
¿Cómo recibir un webhook?
Para comenzar a recibir notificaciones de eventos en su aplicación, realice los pasos que se muestran en esta sección:
- Identifique los eventos que desea monitorear y las cargas útiles de los eventos que se analizarán.
- Cree un punto final desde el webhook como un punto final HTTP (URL) en su servidor local.
- Administre las solicitudes de Stripe analizando cada objeto y restaurando los códigos de estado 2xx de estado.
- Verifique que el punto final webhook funcione correctamente utilizando la CLI Stipe.
- Distribuya el punto final de Webokok para que sea un HTTPS URL de acceso público.
La creación de un punto final en el webhook no es diferente de la creación de ninguna otra página en su sitio web. Es un punto final HTTP o HTTPS con una URL se encuentra en su servidor. Mientras se esté desarrollando en la computadora local, el punto final puede ser HTTP. Tan pronto como sea accesible públicamente, debe ser HTTPS. Puede usar un punto final para administrar diferentes tipos de eventos simultáneamente o configurar puntos finales individuales para eventos específicos.
Use la Guía de referencia de API para identificar los eventos de rayas y los objetos de eventos relacionados que debe analizar el punto final webking. Opcionalmente, recupera un subconjunto de eventos compatibles con la CLI:
Configure un punto final HTTP en su máquina local que pueda aceptar solicitudes de webhook no autenticadas con un método de publicación. Por ejemplo, esta ruta del matraz es un mapa para una función de Python Webhook:
En este ejemplo, la ruta /stripe_webhooks está configurada para aceptar solo solicitudes de publicación y establece que los datos se entregan en una carga útil JSON.
¿Qué es un webhook para las API REST?
A medida que evoluciona el desarrollo web moderno, el deseo de comunicarse de manera efectiva con las personas establece un gran precedente. Para satisfacer la demanda de comunicación de la tecnología, necesitamos encontrar una manera de hacer que las tecnologías se hablen entre sí. Ahí es donde las API y los webhooks entran en escena.
Tanto los webhooks como las API permiten la sincronización y la transmisión de datos entre dos aplicaciones. Sin embargo, ambos tienen un modus operandi diferente y, por lo tanto, tienen propósitos ligeramente diferentes. Para aclarar cualquier confusión entre los dos, echemos un vistazo a las diferencias entre un webhook y una API y qué tipo de escenario es más apropiado.
API significa interfaz de programación de aplicaciones, que es un intermediario de software que permite que dos aplicaciones se hablen entre sí.
En otras palabras, una API es un mensajero que entrega su solicitud al proveedor de que lo solicita y luego le devuelve la respuesta. Por otro lado, Webhook, también llamado API inverso, devolución de llamada web o una API Push HTTP es una forma de que una aplicación proporcione a otras aplicaciones información en tiempo real. Ofrece datos a medida que ocurre un evento o casi de inmediato.
Las API están basadas en solicitudes, lo que significa que operan cuando las solicitudes provienen de aplicaciones de terceros. Los webhooks se basan en eventos, lo que significa que se ejecutarán cuando ocurra un evento específico en la aplicación fuente.
¿Qué es un API REST y para qué sirve?
Una API REST (también conocida como API Restful) es una interfaz de programación de aplicaciones (API o API web) que se ajusta a las limitaciones del estilo arquitectónico REST y permite la interacción con servicios web RESTful. REST representa la transferencia de estado de representación y fue creado por el informático Roy Fielding.
Una API es un conjunto de definiciones y protocolos para construir e integrar software de aplicación. A veces se le conoce como un contrato entre un proveedor de información y un usuario de información, estableciendo el contenido requerido del consumidor (la llamada) y el contenido requerido por el productor (la respuesta). Por ejemplo, el diseño de API para un servicio meteorológico podría especificar que el usuario proporciona un código postal y que el productor responde con una respuesta de 2 partes, la primera es la temperatura alta y la segunda es la baja.
En otras palabras, si desea interactuar con una computadora o sistema para recuperar información o realizar una función, una API lo ayuda a comunicar lo que desea a ese sistema para que pueda comprender y cumplir con la solicitud.
Puede pensar en una API como un mediador entre los usuarios o clientes y los recursos o servicios web que desean obtener. También es una forma para que una organización compartiera recursos e información mientras mantiene la seguridad, el control y la autenticación, determinando quién obtiene acceso a qué.
Otra ventaja de una API es que no tiene que saber los detalles del almacenamiento en caché: cómo se recupera su recurso o de dónde proviene.
¿Qué es un endpoint API REST?
Un punto final API es un punto en el que una API, el código que permite que dos programas de software se comuniquen entre sí, se conecta con el programa de software. Las API funcionan enviando solicitudes de información desde una aplicación web o servidor web y recibiendo una respuesta.
En otras palabras, los puntos finales de API son la ubicación digital específica donde un programa envía solicitudes de información para recuperar el recurso digital que existe allí. Los puntos finales especifican dónde las API pueden acceder a los recursos y ayudar a garantizar el funcionamiento adecuado del software Incorporated. El rendimiento de una API depende de su capacidad para comunicarse con éxito con los puntos finales de la API.
Los programas de software generalmente tienen múltiples puntos finales de API. Por ejemplo, los puntos finales de Instagram incluyen uno que permita a las empresas y creadores medir las interacciones de los medios y el perfil; uno que les permite moderar comentarios y sus respuestas; y un tercero que les permite descubrir medios hashtagged.
Los sistemas que se comunican a través de API son sistemas integrados. Un lado envía la información a la API y se llama servidor. El otro lado, el cliente, hace las solicitudes y manipula la API. El lado del servidor que proporciona la información solicitada o los recursos es el punto final de la API.
Para que el punto final procese una solicitud efectiva, el cliente debe proporcionar un localizador de recursos uniforme (URL), un método, una lista de encabezados y un cuerpo.
Los encabezados proporcionan metadatos sobre una solicitud y el cuerpo contiene los datos enviados por el cliente al servidor.
Artículos Relacionados:
