Restful Web service, Jersey |
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
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.
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 |
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).
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 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
Créez un second Client pour ce deuxième service
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.