Servicio RESTful en JAX-RS con parámetros query

04/Nov/2015 Java , , , , , Deja un comentario

Una de las formas de pasarle parámetros a un servicio RESTful es en la propia URL en un formato /servicio/parametro, pero otra de las formas es pasar los parámetros dentro de la URL pero en formato query. Que sería un formato del estilo /servicio?parametro=valor.

Así que vamos a crear un servicio RESTful en JAX-RS con parámetros query. Para ello vamos a ejecutar dos pasos, en el primero configuraremos el entorno de ejecución y en el segundo codificaremos el servicio RESTful.

Configurando el entorno

Lo primero que tenemos que hacer para crear un servicio RESTful en JAX-RS con parámetros query es configurar el entorno de Jersey, que es la implementación que vamos a utilizar para ejecutar nuestro código de servicio RESTful.

Deberemos de descargarnos las dependencias. En este caso utilizaremos un proyecto Maven y añadiremos al POM la siguiente dependencia, la cual descargará todas las librerías de Jersey.

  1. <dependency>
  2. <groupId>com.sun.jersey</groupId>
  3. <artifactId>jersey-server</artifactId>
  4. <version>1.8</version>
  5. </dependency>

Ahora vamos a configurar el Servlet de Jersey que atiende las peticiones de los servicios RESTful.

Te recomiendo que eches un ojo al artículo Servicios RESTful con Tomcat 7 y Jersey.

  1. <servlet>
  2. <servlet-name>Jersey REST Service</servlet-name>
  3. <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  4. <init-param>
  5. <param-name>com.sun.jersey.config.property.packages</param-name>
  6. <param-value>com.lineadecodigo.javaee.rest</param-value>
  7. </init-param>
  8. <load-on-startup>1</load-on-startup>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>Jersey REST Service</servlet-name>
  12. <url-pattern>/rest/*</url-pattern>
  13. </servlet-mapping>

El parámetro com.sun.jersey.config.property.packages deberá apuntar al paquete raíz dónde estés creando los servicios RESTful.

Codificando un Servicio RESTful en JAX-RS con parámetros query

Lo primero para crear un Servicio RESTful en JAX-RS con parámetros query será definir una clase y mediante la anotación @Path indicarle la URL dónde atenderá el servicio. En este caso no indicamos, de momento, nada para los parámetros query.

  1. @Path("/saludo")
  2. public class ParametroQueryRest { ... }

Ahora vamos a crear un método que atienda a las peticiones GET y que recupere los parámetros de la Query. Este parámetro tiene que tener dos anotaciones @GET para indicar que es el que atiende ese tipo de peticiones y @Produces para indicar el tipo de respuesta que genera, en este caso text/html.

  1. @GET
  2. @Produces("text/html")
  3. public String getSaludo() { ... }

Ahora utilizaremos la anotación @QueryParam para indicar dentro de los parámetros del método cual corresponde al parámetro de la query.

  1. @GET
  2. @Produces("text/html")
  3. public String getSaludo(@QueryParam("nombre") String nombre) {
  4. return "<html lang=\"en\"><body><h1>Hola " + nombre + "</h1></body></html>";
  5. }

Como podemos observar indicamos mediante la anotación @QueryParam que buscamos el parámetro nombre en la query y usaremos el parámetro del método para generar la respuesta.

Ya solo nos quedará ejecutar e invocar a nuestro servicio RESTful /saludo?nombre=Luis

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*