Restful Web service, Jersey |
IDE Netbeans (ou Eclipse)
La librairie Jersey 2 est incluse dans Netbeans
Dans Netbeans, créez un projet Java
with Maven / Payara Micro Application (les dépendances
Maven téléchargeront un serveur approprié).
Si vous avez des problèmes
avec vos dépendances (suivant la version de Netbeans :-/) utilisez
ce fichier pom.xml
Créez un Service Web
Rest CRUD permettant de gérer des livres (fictifs ici) et
retournant de simples chaines HTML suivant l'appel. Vous pouvez
par exemple gérer une ArrayList de Livres pour simuler une base
de données.
Rapppel:
Method | Description |
---|---|
GET |
Demande d'une représentation d'une ressource |
PUT |
Crée ou met à jour une ressource with une représentation fournie |
DELETE |
Supprime la resource spécifiée |
POST |
Envoie de données à être traitées par la ressource donnée |
OPTIONS |
Returns the methods supported by the identified resource |
Créez le Client associé: créez un nouveau projet Java / Java Application
Vous pouvez tenter la génération d'un client : sous Netbeans, sur le projet en cours, faites click droit et New Restful Java Client. Cela génère une classe à instancier/appeler dans une méthode Main (à faire).
HATEOAS (Hypermedia as the Engine of Application State), est une contrainte faisant partie intégrante de REst initialement. Cette contrainte stipule qu'un client peut communiquer avec un service REst sans avoir de connaissances préalables sur le service. Le service doit donc fournir tous les détails pour être appelé dynamiquement.
AVia un retour HTML composé de liens (exemple), modifiez la méthode précédente d'ajout de livres pour la rendre compatible HATEOAS. Par exemple, losrque vous avez ajouté un livre, le retour montre que vous pouvez mettre à jour la base de livres, les supprimer, etc.
A
Créez un second projet Web Application.
Développez toujours un service Web REst pour manipulation de livres, mais cette fois en créant une ressource spécialisées appelée Book (classe métier). Il vous faut donc un nouveau POJO Book, oui.
Les appels doivent sérialiser les données avec le application/json
BCréez un second Client pour ce deuxième service
Vous pouvez tenter une génération de code mais... ca ne marchera probablement pas, ou du moins ce sera incomplet
A
Modifiez le premier service en ajoutant une méthode pour que ce dernier appelle le deuxième service et retourne un chaine (@produces de type text/html). (Reprenez le code du client précédent !)
Testez via le navigateur ou en créant un client
Reprenons la question 2.
On souhaite ajouter une méthode qui prend en paramàtre un Book.
L'opération ajoute ce livre à une liste et retourne la liste.
font>
A
Quelles sont les solutions possibles ? (au moins 2)
B
Implantez la solution la plus rapide.