Applications REST sur le Google App Engine
Bien que très complet, l’App Engine de Google n’intègre pas la gestion des ressources REST. Voici comment la lui ajouter :
- Télécharger la dernière version de jersey ou l’intégrer à maven ;
- Ajouter les JAR suivants dans le répertoire /war/WEB-INF/lib :
- Modifier le web.xml comme suit :
- Générer l’objet xml réponse (à partir d’un xsd à l’aide de xjc par exemple) :
- Annoter les classes ressources :
- Démarrer le serveur et accéder à la resource localhost:8888/resources/weather/Paris
asm-xxx.jar jackson-core-asl-xxx.jar jersey-client-xxx-ea-SNAPSHOT.jar jersey-core-xxx-ea-SNAPSHOT.jar jersey-json-xxx-ea-SNAPSHOT.jar jersey-server-xxx-ea-SNAPSHOT.jar jettison-xxx.jar jsr311-api-xxx.jar
<servlet> <servlet-name>Objet Direct Web Application</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.objetdirect</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Web Application</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="weather"> <xsd:complexType> <xsd:attribute name="type" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:schema>
package com.objetdirect;
@Path("/weather")
public class ObjetDirectResource {
@GET
@Path("/{city: [A-Z][a-z]+}")
@Produces(MediaType.APPLICATION_XML)
public Response getCityWeather(@PathParam("city") String cityName) {
Weather weather = new Weather();
weather.setType("Very clever on " + cityName);
ResponseBuilder responseBuilder;
responseBuilder = Response.status(Status.OK);
responseBuilder = responseBuilder.type(MediaType.APPLICATION_XML);
responseBuilder = responseBuilder.entity(weather);
Response response = responseBuilder.build();
return response;
}
}

Derniers commentaires