Lista de parámetros en servicio RESTful JAX-RS

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

En otros ejemplos ya hemos visto como pasar parámetros a servicios RESTful en JAX-RS, ya sea en parámetros dentro de la URI o bien con parámetros como query. En este caso vamos a ver cómo podemos controlar una lista de parámetros en servicio RESTful JAX-RS, es decir, cómo pasar a un servicio RESTful una lista de valores.

Por ejemplo imaginemos que hemos creado un formulario y el usuario puede añadir una serie de items, los cuales se quieren pasar al servicio RESTful. Vamos a ver cómo podemos comunicarle esa lista de parámetros.

No vamos a entrar en detalle de cómo configurar tu entorno para poder crear servicios RESTful con JAX-RS. Pero si es la primera vez que te enfrentas a este tipo de ejemplos es «obligatorio» que te leas el artículo Servicios RESTful con Tomcat 7 y Jersey para saber cómo configurar tu entorno de ejecución.

Lo primero para realizar una clase que nos controle una lista de parámetros en servicio RESTful JAX-RS. Para convertir esta clase en un servicio RESTful utilizamos la anotación @Path

@Path("/lista")
public class ListaParametroQueryRest { ... }

Ahora creamos un método que atienda las peticiones de tipo GET, lo cual gestionamos mediante la anotación @Get y que nos devuelva un contenido en HTML, para lo que utilizamos la anotación @Produces

@GET
@Produces("text/html")
public String getItems() {... }

Para la gestión de lista de parámetros en servicio RESTful JAX-RS vamos a apoyarnos en los parámetros por query, así que utilizaremos una anotación @QueryParam. La estructura será:

/lista?item=valor1&item=valor2&item=valor3

Así el parámero que controlamos con @QueryParam es item, pero con una salvedad, que al ser N tendremos que indicar que es una lista. Así que la signatura de nuestro método nos quedará de la siguiente forma:

@GET
@Produces("text/html")
public String getItems(@QueryParam("item") List items) { ... }

Ya solo tendremos que recorrer los elementos de la lista para poder acceder a los valores. Para ello utilizamos un bucle for-each.

@GET
@Produces("text/html")
public String getItems(@QueryParam("item") List items) {
        
  StringBuffer sb = new StringBuffer();
  sb.append("

Lista de Items

Los items adquiridos son:

    "); for (String item:items) sb.append("
  • ").append(item).append("
  • "); sb.append("
"); return sb.toString(); }

De esta forma ya habremos conseguido tener una clase que gestione una lista de parámetros en servicio RESTful JAX-RS.

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.