Tutorial: Cliente para servicio web REST con REST Hooks usando JAX-RS (Jersey) y Maven
martes, agosto 4, 2015 10:33El título del post parece un poco críptico, así que primero lo analizaremos con calma.
Un servicio web se iq option puede resumir como el conjunto de tecnologías que permiten intercambiar información a través de la web entre aplicaciones.
REST (Representational State Transfer) es un estilo de arquitectura software, orientado a crear servicios web escalables. A grandes rasgos establece una serie de restricciones y permite el acceso y modificación de recursos a través de URLs mediante los verbos HTTP (GET, POST, PUT y DELETE). Para el envío de datos en el cuerpo HTTP se suele usar JSON o XML.
Los REST Hooks surgen para solventar una carencia de las arquitecturas REST. Un servicio REST permite que un cliente acceda a los recursos que el servidor ofrece, como hemos dicho, mediante HTTP. Para crear, modificar o eliminar recursos, no ofrece ninguna complicación. El problema viene cuando queremos, como cliente, saber si se ha producido un cambio en un recurso. Ante este caso, la única solución es consultar el servicio REST periódicamente para obtener dicho recurso y comprobar si ha cambiado. Esto crea una sobrecarga enorme sobre el servidor, y tiene la limitación de que siempre va a haber un retardo entre que se produce el cambio y el cliente lo detecta. Los REST Hooks permiten es una suscripción al servicio REST. El cliente hace un POST al servicio REST, suscribiéndose a un evento concreto. Para ello envía en el POST una URL en la que permanece a la escucha. El servidor, cuando se produce el evento, comprueba las suscripciones y envía un mensaje a las URLs asociadas.
Finalmente, Jersey es una implementación de la especificación JAX-RS, que permite la creación de servicios REST Java mediante el uso de anotaciones. De Jersey también utilizaremos la capacidad de mapear JSON a POJO y viceversa, cosa que hace apoyándose en Jackson, una librería iqoption Java para el procesado de JSON.