Restlet

De Dos Ideas.
Revisión del 12:50 23 feb 2012 de Eestevez (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar


Restlet es un framework ligero que ayuda a desarrollar clientes y servicios REST en la plataforma Java creado por Jerome Louvel (Noelios Technologies).

Arquitectura

Soporta todos los conceptos del estilo de arquitectura Transferencia de Estado Representacional (REST) (Recursos, Representación, Conectores, Componentes, etc..).

Restlet es capaz de soportar los principales estándares Web tales como HTTP, SMTP, XML, JSON, WADL y Atom. Están disponibles diversas extensiones para integrarse con Servlet, Spring, Jetty, Grizzly, Simple, JAXB, JiBX, Velocity o FreeMarker.

Primeros pasos

Vamos a explicar como crear un recurso que diga "Hola Mundo".

Creamos un recurso, el cual se va a publicar por medio del metodo GET.

public class HolaMundoResource extends ServerResource {  
  
    @Get  
    public String mensaje() {  
        return "Hola Mundo";  
    }  
  
}  

A continuación creamos un router que es el encarga de publicar nuestro servicio.

public class HolaMundoApplication extends Application {  
  
    /** 
     * Creamos la ruta desde la cual se van a recibir todas las llamadas.
     */  
    @Override  
    public synchronized Restlet createInboundRoot() {  
       // Creamos el enrutador que rutea cada llamada a una nueva instancia de HolaMundoResource.
       Router router = new Router(getContext());  

       // Definimos una ruta.
       router.attach("/hola", HolaMundoResource.class);  
  
       return router;  
    }  
  
}  

Configuramos el web.xml con nuestro servlet para que cuando le enviemos un pedido a una URL, nuestro servidor lo delegue al servlet de rest.

   <?xml version="1.0" encoding="UTF-8"?>  
   <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>demo restlet</display-name>  
      <context-param>  
         <param-name>org.restlet.application</param-name>  
         <param-value>  
            com.demo.restlet.HolaMundoApplication  
         </param-value>  
      </context-param>  
     
      <servlet>  
         <servlet-name>RestletServlet</servlet-name>  
         <servlet-class>  
            org.restlet.ext.servlet.ServerServlet  
         </servlet-class>  
      </servlet>  
     
      <servlet-mapping>  
         <servlet-name>RestletServlet</servlet-name>  
         <url-pattern>/*</url-pattern>  
      </servlet-mapping>  
   </web-app>

Finalmente deployar el war (en mi caso demo-restlet.war) en el servidor de aplicación que más deseen, ingresar la url http://127.0.0.1/demo-restlet/hola y se visualiza nuestro Hola Mundo en el navegador.

Referencias: http://www.restlet.org/documentation/2.0/firstSteps

Maven

Si se desea trabajar con maven, se debe agregar en el pom.xml el repositorio de restlet.

<repositories>
  <repository>
    <id>maven-restlet</id>
    <name>Public online Restlet repository</name>
    <url>http://maven.restlet.org</url>
  </repository>
</repositories>

Una vez que agregado el repositorio se pueden agregar las dependencias. Por ejemplo:

<dependency>
  <groupId>org.restlet.jse</groupId>
  <artifactId>org.restlet</artifactId>
  <version>2.1-M7</version>
</dependency>

<dependency>
  <groupId>org.restlet.jse</groupId>
  <artifactId>org.restlet.ext.simple</artifactId>
  <version>2.1-M7</version>
</dependency>


Más información

Web oficial de Restlet