Servicio RESTful en JAX-RS con parámetros query

04/Nov/2015 Java , , , , , Deja un comentario
Programación en Java

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.


  com.sun.jersey
  jersey-server
  1.8

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.


  Jersey REST Service
  com.sun.jersey.spi.container.servlet.ServletContainer
  
    com.sun.jersey.config.property.packages
    com.lineadecodigo.javaee.rest
  
  1


  Jersey REST Service
  /rest/*

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.

@Path("/saludo")
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.

@GET
@Produces("text/html")
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.

@GET
@Produces("text/html")
public String getSaludo(@QueryParam("nombre") String nombre) {
  return "

Hola " + nombre + "

"; }

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


¿Algo que nos quieras comentar?

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.