Software">
[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
185 vues6 pages

TP1 WS Rest

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1/ 6

Département IDL – Institut Supérieur d’informatique

3IDL, module : SOA 2022/2023

TP 2 : Création de service web REST


Objectifs : Dans ce TP,vous initiez à la création d’un serviceweb REST.

Environnement de travail : IDE eclipse, Netbeans ou intellige, JDK 8 ou plus, Postman, MySQL

Création d’un service web REST en java


1. Créer un nouveau projet Spring boot : Créez un projet Spring à partir du site SPRING
INITIALIZR tout en ajoutant les dépendances Spring Web, Spring Data JPA, MySQL Driver.
Après avoir sélectionné les dépendances et donné les coordonnées Maven appropriées,
téléchargez le projet au format compressé. Décompressez puis importez le projet dans
eclipse en tant que projet maven.

2. Ajouter des sous-packages au projet :

− DAO - Le DAO (couche d'accès aux données) fournit une interface pour se connecter à la base
de données et accéder aux données stockées dans la base de données. Une seule classe DAO
peut traiter des requêtes récupérant différents types d'entités.
− Référentiel - Cette couche est similaire à la couche DAO qui se connecte à la base de données et
accède aux données. Cependant, la couche de référentiel fournit une plus grande abstraction
par rapport à la couche DAO. Chaque classe est responsable de l'accès et de la manipulation
d'une entité. Ce didacticiel utilisera la couche de référentiel.
− Service - Cette couche appelle la couche DAO pour obtenir les données et y appliquer la logique
métier. La logique métier dans la couche de service pourrait être - effectuer des calculs sur les
données reçues, filtrer les données en fonction d'une certaine logique, etc.
− Modèle - Le modèle contient tous les objets Java qui seront mappés à la table de base de
données à l'aide. Le DAO récupère les données de la base de données et remplit le modèle
respectif avec ces données et les renvoie à la couche de service et vice versa.
Département IDL – Institut Supérieur d’informatique
3IDL, module : SOA 2022/2023

− Contrôleur - Il s'agit de la couche la plus élevée, appelée lorsqu'une demande arrive pour une
API REST particulière. Le contrôleur traitera la demande de l'API REST, appellera un ou plusieurs
services et renverra une réponse HTTP au client.

3. Créer une table dans la BD et configurer les détails MySQL dans Spring Boot :

− Pour connecter cette instance MySQL dans votre application, vous devrez fournir les
détails de la base de données à Spring Boot. Ouvrez le fichier application.properties et
ajoutez le contenu ci-dessous :

4. Créer la classe modèle :


Département IDL – Institut Supérieur d’informatique
3IDL, module : SOA 2022/2023

− L'annotation @Entity spécifie que cette classe Java est mappée à la table de la base de
données.
− @Table à l'aide du nom de la propriété spécifie à quelle table particulière cette classe est
mappée.
− @Column sur chaque variable d'instance Java permet de définir un ensemble de
propriétés telles que le nom, la longueur, etc. La propriété name sera le nom du champ
dans la table de base de données auquel cette variable d'instance sera mappée.
− @Id sur un champ indique à Spring Boot que ce champ particulier est la clé primaire de la
table
− @GeneratedValue spécifie la stratégie qui sera utilisée pour générer les clés primaires.

5. Créer la classe Respository :


Département IDL – Institut Supérieur d’informatique
3IDL, module : SOA 2022/2023

− L’annotation @Repository sur la classe indique que la classe est un référentiel de


données qui contiendra des opérations CRUD. CRUD est un acronyme qui représente les
quatre opérations de base de la base de données - Créer, Lire, Mettre à jour, Supprimer.

− Le EmployeeRepository étend JpaRepository. Vous avez deux paramètres passés au


JpaRepository - le premier paramètre est la classe de modèle qui sera gérée par ce
référentiel, le second est le type de données de la clé primaire.

6. Créer la classe Service :

− Dans Spring, vous utilisez l'annotation @Autowired pour instancier un objet de classe.

− L'annotation @Repository de la classe EmployeeRepository a permis la création d'un


bean de cette classe via la fonctionnalité @ComponentScan de Spring. Ce bean est
ensuite utilisé dans la classe de service à l'aide de l'annotation @Autowired. C'est ce
qu'on appelle l'injection de dépendance au Spring.

− Vous allez maintenant créer des méthodes dans la couche de service. Chacune de ces
méthodes appellera les méthodes JpaRepository étendues par EmployeeRepository.

− Ajoutez ces méthodes à la classe EmployeeService après EmployeeRepository


empRepository
Département IDL – Institut Supérieur d’informatique
3IDL, module : SOA 2022/2023

− Pour mettre à jour les détails de l'employé, ajoutez la fonction suivante après la méthode
deleteEmployee(Long empId) :

7. Créer la classe Controller :

− L'annotation @RequestMapping sur la classe définit une URL de base pour toutes les API
REST créées dans ce contrôleur. Cette URL de base est suivie de Endpoint REST individuels
attribués à chacune des méthodes de contrôleur.
− @RestController sur la classe est une combinaison de :
− @Controller - indique à Spring Boot que cette classe est un contrôleur.
− @ResponseBody - indique que la valeur de retour des méthodes à l'intérieur du
contrôleur sera renvoyée comme corps de réponse pour l'API REST.
− EmployeeService est injecté en tant que dépendance à l'aide de l'annotation
@Autowired.
Département IDL – Institut Supérieur d’informatique
3IDL, module : SOA 2022/2023

8. Créer des méthodes pour effectuer des opérations CRUD :

− Value : est le endpoint. Dans notre cas, c'est /employés. Notez que le endpoint indiqué
dans le champ de valeur est uniquement « / employés » et non « /API/employés ». Étant
donné que "/api" est commun à tous les endpoints, il a été ajouté comme URL de base
dans l'annotation @RequestMapping sur la classe.
− Method : il s'agit du type de méthode HTTP représenté par une énumération. Pour le
endpoint de création d'employé, la méthode HTTP est POST. Par conséquent, vous
ajouterez RequestMethod.POST comme valeur.
− L'annotation @RequestBody est utilisée pour mapper le corps de la demande du
endpoint au paramètre de méthode. emp contiendra la requête JSON transmise à ce
endpoint.

De même, vous ajouterez du code pour toutes les autres API REST. Ajoutez ces méthodes à la
classe EmployeeController après la méthode createEmployee :

− Notez que certaines méthodes incluent @PathVariable, ce qui signifie que le endpoint a
un paramètre de l’URL impliqué. Le @PathVariable mappera la variable de l’URL fournie
dans le paramètre de valeur du endpoint au champ de méthode Java.

9. Test et manipulation du WS REST :


− Faites maven build à l'aide de « mvn clean install » et démarrez l'application
− Testez l’appel à l’API via postman

Vous aimerez peut-être aussi