Hola Mundo con JAX-RS
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.
Configurando las dependencias
Sección titulada «Configurando las dependencias»Para poder utilizar las librerías vamos a añadir una dependencia en nuestro fichero POM.
<dependency> <groupid>com.sun.jersey</groupid> <artifactid>jersey-server</artifactid> <version>1.8</version></dependency>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
Configurando el servlet de Jersey
Sección titulada «Configurando el servlet de Jersey»Además deberemos de configurar el servlet de Jersey en el fichero web.xml
<servlet> <servlet-name>Jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.lineadecodigo.javaee.rest</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>Jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern></servlet-mapping>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.
Creando el servicio REST
Sección titulada «Creando el servicio REST»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.
Atendiendo peticiones GET
Sección titulada «Atendiendo peticiones GET»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 "<h1>Hola Mundo!!</h1>";}Código completo
Sección titulada «Código completo»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 "<h1>Hola Mundo!!</h1>"; }
}Descarga el código de Hola Mundo con JAX-RS
Crea tu primer servicio RESTful con JAX-RS y Jersey. Ejemplo completo con anotaciones @Path, @GET y @Produces para devolver respuestas HTML.