Restlet es un framework que lleva el concepto de los servlet para generar servicios web. Si vamos a una definición de Rest (http://diegograf.blogspot.com/2009/08/una-alternativa-mas-simple-soap-en-lo.html) veremos que la idea principal es hacer servicios web simples.
La simpleza puede verse de quien consume el servicio web. Restlet hace simple el desarrollo de web services. Veamos un “hola Mundo” usando Restlet 2.0
1. package firstSteps;
2.
3. import org.restlet.resource.Get;
4. import org.restlet.resource.ServerResource;
5.
6. /**
7. * Resource which has only one representation.
8. *
9. */
10. public class HelloWorldResource extends ServerResource {
11.
12. @Get
13. public String represent() {
14. return "hello, world";
15. }
16.
17. }
Vemos que hemos creado un recurso el cual se va a publicar por medio del método GET. Ahora hagamos una aplicación:
1. package firstSteps;
2.
3. import org.restlet.Application;
4. import org.restlet.Restlet;
5. import org.restlet.routing.Router;
6.
7. public class FirstStepsApplication extends Application {
8.
9. /**
10. * Creates a root Restlet that will receive all incoming calls.
11. */
12. @Override
13. public Restlet createRoot() {
14. // Create a router Restlet that routes each call to a
15. // new instance of HelloWorldResource.
16. Router router = new Router(getContext());
17.
18. // Defines only one route
19. router.attach("/hello", HelloWorldResource.class);
20.
21. return router;
22. }
23. }
Como vemos creamos un router el cual es el encargado de publicar nuestro servicio web. Ahora configuramos el contexto para que cuando le enviemos un pedido a una URL, nuestro servidor lo delegue al servlet de rest.
1. <?xml version="1.0" encoding="UTF-8"?>
2. <web-app id="WebApp_ID" version="2.4"
3. xmlns="http://java.sun.com/xml/ns/j2ee"
4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7. <display-name>first steps servlet</display-name>
8.
9. <context-param>
10. <param-name>org.restlet.application</param-name>
11. <param-value>
12. firstSteps.FirstStepsApplication
13. </param-value>
14. </context-param>
15.
16.
17. <servlet>
18. <servlet-name>RestletServlet
19. <servlet-class>
20. org.restlet.ext.servlet.ServerServlet
21. </servlet-class>
22. </servlet>
23.
24. <!-- Catch all requests -->
25. <servlet-mapping>
26. <servlet-name>RestletServlet</servlet-name>
27. <url-pattern>/*</url-pattern>
28. </servlet-mapping>
29. </web-app>
Bueno con eso estamos, mmm…
Todavía nos faltan los jars por suerte se pueden importar con maven. Dejo el link para configurar el repositorio de restlet http://www.restlet.org/downloads/maven
Si no podemos instalar los jars necesitamos 2 :
org.restlet.jar
org.restlet.ext.servlet_2.5.jar
Lo pueden bajar de http://www.restlet.org/downloads/2.0/restlet-jse-2.0m4.zip e instalar de esta forma :
mvn install:install-file -DgroupId=org.restlet -DartifactId= org.restlet -Dversion=2.0.0 -Dpackaging=jar -Dfile=dondeDejasteElJar/elJar.jar
mvn install:install-file -DgroupId=org.restlet -DartifactId= org.restlet.ext -Dversion=2.0.0 -Dpackaging=jar -Dfile=dondeDejasteElJar/elJar.jar
1. <dependency>
2. <groupId>org.restlet</groupId>
3. <artifactId>org.restlet</artifactId>
4. <version>2.0.0</version>
5. </dependency>
6. <dependency>
7. <groupId>org.restlet</groupId>
8. <artifactId>org.restlet.ext</artifactId>
9. <version>2.0.0</version>
10. </dependency>
Levanten el jetty o tomcat y luego http://127.0.0.1/contexto/ hello y hay esta nuestro servicio!!