RSS

JavaEE: JAX-RS

05 Jul

La siguiente mini demo que vamos a hacer será la implementación de un pequeño servicio REST. Ni siquiera vamos a implementar todas las posibles operaciones (GET, DELETE, PUT, POST), vamos a implementar una simple operación GET. Para ello al igual que en los casos anteriores vamos a necesitar Eclipse y Maven.

Lo primero, es crear el proyecto maven sin arquetipo al igual que anteriormente. Tras esto abriremos el fichero pom.xml y añadiremos el siguiente contenido en él:

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.wordpress.infow</groupId>
    <artifactId>jaxrs</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>
    <name>jaxrs</name>
    <url>http://www.infow.wordpress.com</url>

    <repositories>
        <repository>
            <id>JBoss repository</id>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>2.3.6.Final</version>
        </dependency>
    </dependencies>
</project>

No hay nada que destacar en este fichero, y ya se dió una pequeña explicación de su contenido en el primer post de la serie, así que, salvo dudas, seguimos adelante sin detenernos más en este punto.

Lo siguiente será crear el fichero web.xml localizado, como siempre, en la ruta <webapp>/WEB-INF/web.xml. Su contenido será el siguiente:

web.xml

<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>JAX-RS Example</display-name>

    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>true</param-value>
    </context-param>

    <context-param>
        <param-name>resteasy.servlet.mapping.prefix</param-name>
        <param-value>/rest</param-value>
    </context-param>

    <listener>
        <listener-class>
            org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
        </listener-class>
    </listener>

    <servlet>
        <servlet-name>resteasy-servlet</servlet-name>
        <servlet-class>
            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
        </servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>resteasy-servlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

Lo más destacable de este fichero, como siempre, partiendo de que ya conocemos la tecnología y no estámos haciendo un tutorial explicativo paso a paso, es la sección de mapping:

  • servlet-mapping: que será la ruta donde estarán mapeados los servicios REST que implementemos.

Después de esto, lo único que resta, es la creación en si de nuestro servicio REST. En este caso, al igual que en el resto de ejemplos, va a ser un simple servicio que devuelva un mensaje a partir de un nombre dado:

Servicio REST

@Path("/message")
public class MessageService {
    @GET
    @Path("/{name}")
    public Response getMessage(@PathParam("name") String name) {
        String message = "Hello " + ((name != null) && (name.length() > 0) ? name : "anonymous");

        return Response.status(200).entity(message).build();
    }
}

Cosas a tener en cuenta:

  • @Path: A nivel de clase. Define la ruta en la que encontraremos los diferentes métodos de este servicio REST.
  • @GET: Quiere decir que vamos a implentar la operación GET de REST.
  • @Path: A nivel de método. Será la ruta concreta con la que accederemos al método del servicio REST. Como podéis ver usando las {} se considerá un parámetro de entrada.
  • @PathParam: Parámetro de entrada del método del servicio REST obtenido a partir de la URL.

Por lo demás, no es más que un método normal y corriente.

Para acceder a él y probarlo, bastará con el acceso a la URL: <servidor>/rest/message/yourName

Bueno, hasta aquí esta pequeña demo de como crear desde cero un proyecto con servicios REST.

Como en veces anteriores, os dejo el código para que podáis usarlo y probarlo.

Codigo JAX-RS Hello World: JAX-RS

Todo hasta aquí. Nos vemos.

Anuncios
 
Deja un comentario

Publicado por en 5 julio, 2013 en JavaEE

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: