Diferencia entre revisiones de «Restlet»
(Página creada con '===Restlet=== Restlet es un framework ligero que ayuda a desarrollar clientes y servicios REST en la plataforma Java creado por Jerome Louvel (Noelios Technologies). ==Arquite…') |
|||
(No se muestran 2 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | + | [[Category:Restlet]] | |
+ | |||
Restlet es un framework ligero que ayuda a desarrollar clientes y servicios REST en la plataforma Java creado por Jerome Louvel (Noelios Technologies). | Restlet es un framework ligero que ayuda a desarrollar clientes y servicios REST en la plataforma Java creado por Jerome Louvel (Noelios Technologies). | ||
Línea 7: | Línea 8: | ||
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. | 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> | ||
+ | <!-- Application class name --> | ||
+ | <context-param> | ||
+ | <param-name>org.restlet.application</param-name> | ||
+ | <param-value> | ||
+ | com.demo.restlet.HolaMundoApplication | ||
+ | </param-value> | ||
+ | </context-param> | ||
+ | |||
+ | <!-- Restlet adapter --> | ||
+ | <servlet> | ||
+ | <servlet-name>RestletServlet</servlet-name> | ||
+ | <servlet-class> | ||
+ | org.restlet.ext.servlet.ServerServlet | ||
+ | </servlet-class> | ||
+ | </servlet> | ||
+ | |||
+ | <!-- Catch all requests --> | ||
+ | <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== | ||
+ | [http://www.restlet.org/ Web oficial de Restlet] |
Revisión actual del 12:50 23 feb 2012
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>