Google App Engine |
Vous préférez utiliser un IDE (Eclipse)? alors allez là
A
Faites un service Web qui permet
La solution qui semble la plus adéquate est d'utiliser la librairie Objectify.
Voir ici
Il faut bien sûr ajouter les dépendances (Objectify et certainement JaxB ) mais aussi créer une classe de configuration Objectify (exemple ci dessous)
@Configuration
public class ObjectifyConfig {
@Bean
public FilterRegistrationBean<ObjectifyFilter>
objectifyFilterRegistration() {
final FilterRegistrationBean<ObjectifyFilter>
registration = new FilterRegistrationBean<>();
registration.setFilter(new ObjectifyFilter());
registration.addUrlPatterns("/*");
registration.setOrder(1);
return registration;
}
@Bean
public ServletListenerRegistrationBean<ObjectifyListener>
listenerRegistrationBean() {
ServletListenerRegistrationBean<ObjectifyListener> bean =
new
ServletListenerRegistrationBean<>();
bean.setListener(new ObjectifyListener());
return bean;
}
@WebListener
public class ObjectifyListener implements ServletContextListener
{
@Override
public void contextInitialized(ServletContextEvent
sce) {
ObjectifyService.init();
ObjectifyService.register(Employee.class);
}
@Override
public void contextDestroyed(ServletContextEvent sce)
{
}
}
}
N'oubliez pas la ligne ObjectifyService.register(Employee.class); qui permet d'enregistrer vos classes métiers. Il vous faut également une classe ServletInitializer. Exemple:
public class ServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder
configure(SpringApplicationBuilder application) {
return
application.sources(BookstoreApplication.class);
}
}
Vérifiez bien votre code et deployez sur GAE pour tester. En local, ca ne fonctionne pas, à moins d'installer le simulateur Datastore avec le SDK GCloud.
Vérifiez également que le datastore est modifié via la console d'admin de GAE (https://console.cloud.google.com/).
Utiliser Emulator Datastore :
gcloud components install cloud-datastore-emulator
gcloud beta auth application-default login
dans pom.xml :
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-starter-data-datastore</artifactId>
<version>2.0.0</version>
</dependency>
dans fichier application.properties
spring.cloud.gcp.datastore.project-id=inf63app0
spring.cloud.gcp.datastore.emulator.enabled=true
spring.cloud.gcp.datastore.emulator.port=8081
spring.cloud.gcp.datastore.host=localhost:8081
Faites une client Guzzle ou Java.
A
Implémentez le même service que précédemment dans une nouveau projet, en
utilisant la librairie bas niveau du Datastore. Ajoutez les dépendences
(google-cloud-datastore et JaxB certainement).
Pensez à la gestion des erreurs. Le SDK propose une Exception DatastoreException.
Testez votre service localement, (notez qu'il utilisera le vrai Datastore de GAE) en utilisant un navigateur. Vérifiez également que le datastore est modifié via la console d'admin de GAE (https://console.cloud.google.com/).
B
Déployez sur GAE et testez.