Software">
TP1 WS Rest
TP1 WS Rest
TP1 WS Rest
Environnement de travail : IDE eclipse, Netbeans ou intellige, JDK 8 ou plus, Postman, MySQL
− 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 :
− 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.
− Dans Spring, vous utilisez l'annotation @Autowired pour instancier un objet de classe.
− 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.
− Pour mettre à jour les détails de l'employé, ajoutez la fonction suivante après la méthode
deleteEmployee(Long empId) :
− 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
− 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.