13 agosto, 2009

Web Hooks (1)

Este es la primera de una serie de tres traducciones de artículos que presentan tres tecnologías relacionadas y novedosas en el ámbito de la programación web. Web Hooks, Reverse HTTP y Pushbutton. La idea principal para habilitarla se describe en este primer artículo sobre webhooks: hacer disponible un script en una URL de forma que un servidor envie ahí información sobre cambios a los que se ha suscrito. Usa el famoso HTTP que siempre han usado los navegadores pero internamente entre servidores web para mandarse información.

Visita webhooks.org para información más actualizada sobre esta tecnología o el Grupo de Google para debatir

¿Qué son los web hooks?

Los web hooks (enganches web) permiten personalizar, extender e integrar las aplicaciones web que uses con todo lo que puedas acceder programaticamente. Para los desarrolladores web, los web hooks son un patron de diseño simple que sólo requiere la habilidad de hacer peticiones web y almacenar algo de información extra sobre los usuarios. Para los usuarios, los web hooks son una forma de obtener eventos y datos en tiempo real desde sus aplicaciones web. A partir de esto pueden usar esos datos como deseen, permitiéndoles extender e integrar, y empezar a obtener una verdadera visión de la web programable.

¿Cómo funcionan?

Dejando que el usuario especifique una URL para varios eventos, la aplicación hará un POST con los datos a esas URLs cuando esos eventos se produzcan. Con la disponibilidad económica del alojamiento con PHP y con almacenamiento de aplicaciones o scripts aún más simple como el de AppJet o Scriptlets, gestionar los datos del POST se convierte en trivial. Cómo usarlo depende de ti y de lo que quieras conseguir. Entre otras cosas puedes:
  • crear notificaciones para ti o para cualquiera via email, IRC, Jabber, ...
  • poner los datos en otra aplicación (sincronización de datos en tiempo real)
  • procesar los datos y reenviarlos usando la API de la aplicación
  • validar los datos y potencialmente prevenir su uso por la aplicación

¿Por qué me debe importar?

Tan integrada como percibimos la web, la mayoría de aplicaciones operan en silos. Con la aparición de las APIs hemos visto mashups (combinaciones) y algun grado de integración entre aplicaciones. En cualquier caso, no hemos visto la visión de una web programable: una web donde tú como usuario puedes encauzar los datos entre aplicaciones de forma parecida a como se hace en la línea de comandos Unix. Algunos dicen que la respuesta es RSS. Están equivocados. El corazón está en el sitio correcto pero la implementación es errónea. RSS es útil, pero no va a traernos la verdadera web programable.

Necesitamos una forma simple de extraer datos en tiempo real para dejar que el usuario haga lo que quiera con ellos. Eso significa que nada de consultas repetitivas, nada de restricciones en el contenido, y nada de parsear el XML. Eso significa no usar RSS. Usar HTTP es más simple y más fácil de usar. PHP es un entorno de programación accesible y muy popular, por lo que es probable que se utilice a menudo para programar hooklets... obtener los datos de una petición POST en PHP es tan sencillo como $_POST['algo']. Y hacer la petición al script del usuario es tan simple como realizar una petición HTTP tradicional, algo que los entornos de programación tradicionales ya permiten. De hecho, los web hooks son más fáciles de implementar que una API.

Ejemplos de implementaciones pueden encontrarse en Sitios como shopify, SurveyGizmo, ZenDesk, GitHub, o Google Code.

Para saber más

1 comentarios:

Damian Quijano dijo...

Ya publicó Web Hooks segunda parte? saludos.

Publicar un comentario en la entrada

Últimos links en indiza.com