Servicios Web RESTful en Axis 2

1
36277

Servicios Web RESTful en Axis 2

En este tutorial vamos realizar una descripción de REST y vamos a ver un ejemplo práctico de un Servicio Web RESTful

¿Qué es REST?

REpresentational Estado Transfer (REST) es un método de diseño de arquitectura que consiste en ver un servicio Web como un recurso identificable mediante una URL.

¿Cuándo usar REST?

Un diseño REST puede ser apropiado cuando:

  1. Cuándo la funcionalidad expuesta por el servicio es síncrona.
  2. Cuándo el servicio Web no tiene estado.
  3. Cuándo la información que provee el servicio puede ser cacheada para mejorar el rendimiento.
  4. Cuándo se conoce bien el contexto de la comunicación (formato de datos, métodos, etc.) entre productor y el consumidor.
  5. Cuándo es importante que la comunicación sea ligera en terminos de bytes transmitidos debido al coste »» PDAs, móviles, etc
  6. Cuándo el consumidor tiene limitaciones de ancho de banda (PDAs, móviles, etc).
  7. Cuándo el consumidor desea acceder a los servicios (sin tener que instalar nada), a través de una página Web con Ajax y analizar el resultado (xml).

¿Qué son los Web Services RESTful?

Son aquellos servicios Web que funcionan bajo REST

Los Web Service REST proporcionan acceso a través de los métodos GET y POST de HTTP.

  1. GET: En accesos vía GET, tanto las operaciones como los parámetros se pasan por la URL » Sólo soporta argumentos con tipos simples.
  2. POST: En este tipo de acceso, la información no viaja en mensajes SOAP Envelope, sino directamente en el payload del mensaje.

REST en Axis2

Axis2 puede ser configurado para funcionar con REST, de manera que pueda enviar y recibir peticiones REST. (Por defecto está configuración esta habilitada)

Para habilitar REST, hay que añadir la siguiente línea en el archivo de configuración axis2.xml.

Cuando un mensaje es recibido, entonces:

  • Si el content type es text/xml y además NO está presente la cabecera SOAP Action » Mensaje REST.
  • Si el content type es text/xml y además SI está presente la cabecera SOAP Action » Mensaje SOAP.

Instalación de Axis 2

Para instalar Axis 2, simplemente deberás

  1. Descargártelo desde http://ws.apache.org/axis2/
  2. Descomprimirlo en tu disco duro
  3. Crear una variable de entorno de nombre AXIS_HOME que apunte al directorio donde fue descargardo. Por ejemplo c:/java/axis2-1.3
  4. Desplegar el archivo %AXIS_HOME%/dist/axis2.war en tu servidor de aplicaciones o contenedor de servlets favorito (JBoss, iPlanet, WebSphere, Weblogic, GlassFish, Geronimo, Tomcat, etc.)

A continuación veremos varias maneras de invocar uno de los servicios Web que vienen preinstalados en la distribución de Axis 2

Ejemplo: Invocación del servicio Web a través de HTTP GET

Abra su navegador favorito y ponga la siguiente dirección: http://127.0.0.1:8080/axis2/services/Version/getVersion

Ejemplo: Invocación del servicio Web a través de HTTP POST desde un formulario

Ejemplo: Invocación del servicio Web a través de HTTP POST usando las clases de Axis

Ejemplo: Invocación del servicio Web a través de HTTP POST desde las clases estándares de Java

Ejemplo: Invocación del servicio Web a través de HTTP POST usando HTTPClient

Puedes ver un tutorial de HTTPClient aquí

Cuando Axis recibe una petición REST, internamente la traduce, a SOAP, por ejemplo:

Información que nos devuelve el Servicio Web en todos los caso

Conclusiones

Como podemos deducir de este tutorial, para hacer que un servicio Web sea RESTful es más un tema del motor de servicio Web (en este caso Axis) que del propio servicio.

Además también se puede deducir que el acceso a este tipo de servicios Web no tiene dependencias con contratos WSDL, clases especificas de comunicación, esquemas XML, etc. por lo que se hace más fácil y ligero su uso.

Un saludo, Carlos García.

1 Comentario

  1. Muy interesante el tutorial. Una pregunta, ¿cuál es la mejor forma de añadir seguridad a REST? ¿mediante HTTPS? ¿o hay algún otro mecanismo recomendado?

Dejar respuesta

Please enter your comment!
Please enter your name here