TP Web Service

S. Salva


TP2 Springboot


1. Outils

Maven, Springboot

2. Développement d'un service web avec Springboot

Développez un service de gestion de livres cette fois avec Springboot  (pas de BD pour gagner du temps, donc créez, retournez des données factices). Il vous ai demandé de créer une Entity Book.

Parmis les méthodes de ce service, je vous demande une méthode getallbooks qui permet de récupérer tous les livres en retournant une ArrayList de Books. Ajoutez au moins une seconde méthode avec le verbe @POST ou @PUT.

Attention : par défaut votre service est Statefull (Rest n'est pas respecté, testez...) (ce qui est pratique ici pour tester vos méthodes @POST ou @DELETE)

Vous pouvez vous aider du Guide de Springboot.

Voici aussi quelques recommendations :

3. Gestion des Erreurs

A

Créez 2 classes d'exception par exemple pour les statuts @ResponseStatus(HttpStatus.NOT_FOUND) ou @ResponseStatus(HttpStatus.FORBIDDEN).
Liste des Status ICI

B
Demarrez votre service, testez le manuellement et controlez que les exceptions fonctionnent. Pour faire des requètes de type POST ou PUT vous pouvez par exemple utiliser un utilitaire de type plugin de nagivator, par exemple Rest pour Firefox.

4. Développement d'un Client

Le framework Sprinboot vous simplifie la tache en proposant un proxy via la classe RestTemplate. Cette classe propose plusieurs méthodes, notamment:

Exemple:
RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject(uri, String.class);

Vous avez également des méthodes du type getForEntity(url, responseType) et execute(url, httpMethod, requestCallback, responseExtractor) vous permettant de récupérer des réponses complètes.

A

Faites un client qui permet d'ajouter quelques livres, et de récupérer tous les livres au format ArrayList<Book>.

Vous pouvez encore une fois vous aider de ce  Guige Springboot et de l'Initializr.

B

Testez votre client.