La librería JAX-RS nos permite la creación de servicios RESTful de una forma sencilla. En el ejemplo de hoy vamos a crear nuestro Hola Mundo con JAX-RS, el cual nos enseñará a crear un servicio RESTful básico.
Lo primero que necesitamos saber es que para poder crear un servicio Restful con JAX-RS necesitamos apoyarnos en las librerías Jersey. Las librerías Jersey son las que han realizado la implementación del estándar JAX-RS.
Para poder utilizar las librerías vamos a añadir una dependencia en nuestro fichero POM.
com.sun.jersey
jersey-server
1.8
Te recomiendo que eches un ojo al artículo Servicios RESTful con Tomacat 7 y Jersey para que puedas configurar un entorno operativo para este ejemplo de una forma sencilla
Además deberemos de configurar el servlet de Jersey en el fichero web.xml
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/*
De esta configuración tenemos que saber dos cosas. La primera es que el parámetro com.sun.jersey.config.property.packages
tiene que tener el valor de la librería en la cual creemos los servicios RESTful. En este caso es nuestra librería de ejemplo com.lineadecodigo.javaee.rest
Recuerda que puedes descargarte todos los códigos de ejemplo de Java EE desde nuestro GitHub y ejecutarlos directamente con Maven.
La segunda cosa es que hemos configurado una ruta para las peticiones de tipo RESTful mediante un servlet-mapping
que en este caso es /rest/*. Pero tu puedes utilizar la que quieras.
El servicio REST estará representado por una clase, sobre la que iremos añadiendo anotaciones. Así que tendremos nuestra clase HolaMundoRest
.
public class HolaMundoRest { .. }
Lo primero será configurar el path en el cual va a atender nuestro servicio Hola Mundo con JAX-RS. Esto lo hacemos con la anotación @Path
@Path("holamundo")
public class HolaMundoRest { ... }
Es decir que las peticiones del RESTful serán en /rest/holamundo ya que es la mezcla del Servlet que hemos configurado más este path.
Lo siguiente será crear un método para que atienda, por ejemplo, a las peticiones GET. En este caso creamos el método getHTML()
. A este método hay que indicarle dos anotaciones. La primera que es un método get con la anotación @GET
y lo segundo será decir que tipo de respuesta tiene. Para este caso vamos a devolver contenido html, así que la respuesta será text/html
y la anotación que utilizamos para indicarlo es @Produces
@GET
@Produces("text/html")
public String getHtml() {
return "Hola Mundo!!
";
}
Si vemos todo el código podemos comprobar lo realmente sencillo (una vez configurado Jersey) que es hacer un Hola Mundo con JAX-RS.
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("holamundo")
public class HolaMundoRest {
public HolaMundoRest() {}
@GET
@Produces("text/html")
public String getHtml() {
return "Hola Mundo!!
";
}
}