En este ejemplo vamos a ver cómo podemos pasar parámetros RESTful con JAX-RS. Es decir, que la URL de la petición RESTful contenga un parámetro, el cual vayamos a utilizar posteriomente. Para ello vamos a crear un servicio RESTful que nos salude y que el nombre de la persona a saludar esté en la URI de la petición.
Es decir que si ponemos /saludo/victor la respuesta sea Hola Víctor!.
Lo primero que tienes que hacer es configurar todo el entorno para que puedas utilizar JAX-RS. Para ello no dejes de leerte el artículo Servicios JAX-RS con Tomcat 7 y Jersey. Pero a modo resumido tienes que configurar las dependencias de Jersey en el POM.
com.sun.jersey
jersey-server
1.8
Y configurar el Servlet de 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/*
Ahora vamos a crear nuestra clase ParametroRest
.
@Path("saludo/{nombre}")
public class ParametroRest { ... }
En esta clase hemos utilizado la anotación @Path
para poder indicar cual es la URI sobre la que atenderá el servicio RESTful. Además cuando hemos especificado la ruta vemos que el valor del parámetro que vamos a utilizar a posteriori aparece entre llaves.
Lo siguiente será crear el método que atienda a las peticiones GET. Para ello nos apoyaremos en la anotación @GET
e indicaremos que contesta con código HTML mediante la anotación @Produces
.
@GET
@Produces("text/html")
public String getSaludo() { .. }
Ahora tenemos que pasar el parámetro de la URI a este método. Para ello declararemos un atributo del método de tipo String
al cual añadiremos la anotación @PathParam
la cual tiene como parámetro el valor que pusimos entre las llaves del @Path
.
@GET
@Produces("text/html")
public String getSaludo(@PathParam("nombre") String nombre) {
return "Hola " + nombre + "
";
}
Ahora ya podremos utilizar nuestro parámetro del método para componer la respuesta del servicio RESTful. Y así, de esta forma tan sencilla hemos conseguido configurar los parámetros RESTful con JAX-RS.