Google App Engine |
Vous préférez utiliser un IDE (Eclipse)? alors allez là
A
Je vous conseille d'utiliser Maven en ligne
de commande. A vous de voir si vous préférez utiliser un IDE. Un
peu de doc
ici
Pour
choisir un projet, en console faites:
gcloud components update
gcloud
auth login
gcloud config set project **YOUR_PROJECT_ID**
Ensuite, les étapes sont les suivantes:
runtime: java11
instance_class: F1
Pour lancer votre service en local : mvn spring-boot:run
Pour le déployer sur GAE, faites : mvn -DskipTests package appengine:deploy.
L'option -DskipTests permet de ne pas lancer les tests (très
pratique notamment si vous utilisez des Lib/Bd du cloud).
Vous avez également les options -Dapp.deploy.projectId=info63app0
-Dapp.deploy.version=1 pour cibler une application et une version.
Vous
pouvez affichier les logs en console. faites:
Si vous avez une erreur décrivant un pb d'authentification, allez sur une console et faites gcloud auth application-default login
BDans
le même projet, faites un second service de gestion
(fictive) de livres avec une entity Book et une
sérialisation Json.
(Voir TP précédent)
Vous aurez certainement besoin de la dépendance JaxB pour la
sérialisation:
<!-- JAXB -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
et celles là eventuellement (pour xml, mais json non)
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
Créez un Client pour ce sdernier ervice avec Springboot.
Guzzle est un framework PHP de génération de clients HTTP basé sur Curl. Il est possible de faire appel à toutes les méthodes HTTP bien sûr. Il permet également de décortiquer les requètes/réponses quelles soient en HTML, JSON, ou XML.
Voici un exemple basique:
require 'guzzle.phar';
// Create a client for http://localhost (binding to a host is optional)
$client = new GuzzleHttp\Client(); $res = $client->request('GET', 'http://localhost:8080/Projet/webresrouces/wsrest/meth' ]); echo $res->getStatusCode(); echo $res->getHeader('content-type')[0]; // 'application/json; charset=utf8' echo $res->getBody();
$client->request('PUT', '/put', ['body' => 'foo']);
?>