TP Web Service
S. Salva

Restful Web service, Jersey


1. Outils nécessaires

Maven, serveur d'applications (Payara, TomEE+, ou  Glassfish (avec Java 8), lib Jersey2

Pour faire le TP, vous avez plusieurs solutions: maven en ligne de commande, maven avec IDE. Netbeans avec projet Payara Micro application

netbeans

Si vous avez des problèmes avec vos dépendances (suivant la version de Netbeans :-/) utilisez ce fichier pom.xml

2. Création d'un SW REst simple

A

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.

N'oubliez pas de gérer les erreurs (codes retours HTTP ou Exceptions type WebApplicationException)

Rapppel:

Method Description
GET Demande d'une représentation d'une ressource
PUT Créez ou mettez à jour une ressource avec 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

B

Créez le Client associé. Faites un nouveau projet (par exemple sous Netbeans, ajoutez un nouveau projet Java / Java Application)

Sous Netbeans, vous pouvez tenter la génération d'un client : 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). Généralement, il y a des modifications à faire (changer les URLs) et mettez bien la librairies Jersey dans votre projet (celle que vous avez téléchargées avec le lien du dessus. Mettez tous les jar de tous les répertoires).

3. Services Web REST, HATEOAS

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.

A

Via 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.

4. Manipulation de ressources spécialisées

A

Créez un second service Web Rest pour manipulation de livres, mais cette fois en créant une ressource spécialisées appelée Book. Il vous faut donc un nouveau POJO Book, oui.

Les appels doivent être de type application/json. Faites au moins une méthode de type GET et POST

B

Créez un second Client pour ce deuxième service


5. Simulation d'un Service Web persistant en Rest (si temps disponible)

On souhaite créer une méthode qui prend en paramàtre une instance Book. L'opération ajoute ce livre à une liste et retourne la liste.

A

Quelles sont les solutions possibles ? (au moins 2)

B

Implémantez la solution la plus rapide.