Restlet
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