Préparatifs pour la Création d'un RestController
Message aux apprenants
Avant de commencer l'exercice pratique de création d'un RestController, il est essentiel que vous preniez le temps de bien lire cette section. Ce n'est pas encore le moment de coder, mais plutôt de vous préparer et de comprendre la théorie derrière ce que nous allons faire.
1. Qu'est-ce qu'un Service Web?
Un service web est un composant logiciel qui permet à des applications de communiquer entre elles via un réseau. Il expose des fonctionnalités ou des données que d'autres applications peuvent consommer en envoyant des requêtes HTTP et en recevant des réponses.
Architecture Client-Serveur
Flux de Communication
2. Les Annotations en Spring Boot
Les annotations sont des métadonnées qu'on ajoute au code pour indiquer comment certaines parties doivent se comporter. Elles permettent à Spring Boot de configurer automatiquement votre application.
Principales Annotations
| Annotation | Rôle | Exemple |
|---|---|---|
@RestController | Indique que la classe est un contrôleur REST qui gère les requêtes HTTP et retourne des réponses au format JSON ou XML | @RestController public class CardController |
@RequestMapping | Associe une URL de base à une classe ou une méthode | @RequestMapping("/cards") |
@GetMapping | Spécifie qu'une méthode répond aux requêtes HTTP GET | @GetMapping("/hello") |
@PostMapping | Spécifie qu'une méthode répond aux requêtes HTTP POST | @PostMapping("/create") |
@PutMapping | Spécifie qu'une méthode répond aux requêtes HTTP PUT | @PutMapping("/update") |
@DeleteMapping | Spécifie qu'une méthode répond aux requêtes HTTP DELETE | @DeleteMapping("/delete") |
Hiérarchie des Annotations
3. Modèle (Model) et Contrôleur (Controller)
Le Modèle
Un Modèle est une classe Java qui représente une entité métier. Il contient les attributs et les méthodes pour gérer les données.
Exemple: Modèle Card
Code Java correspondant:
public class Card {
private int cardId;
private int customerId;
private String cardNumber;
private String cardType;
private int totalLimit;
private int amountUsed;
private int availableAmount;
private String createDt;
// Getters et Setters
}
Le Contrôleur
Un Contrôleur est une classe qui gère les requêtes HTTP entrantes et retourne des réponses. Il fait le lien entre le client et la logique métier.
Exemple: Contrôleur CardController
Code Java correspondant:
@RestController
@RequestMapping("/cards")
public class CardController {
@GetMapping("/hello")
public String helloCard() {
return "Hello, Card!";
}
@GetMapping("/{id}")
public Card getCard(@PathVariable int id) {
// Logique pour récupérer une carte
}
@PostMapping
public Card createCard(@RequestBody Card card) {
// Logique pour créer une carte
}
}
Architecture MVC avec Spring Boot
4. Prérequis Techniques
Avant de commencer l'exercice pratique, assurez-vous que votre environnement de développement est correctement configuré.
Vérification des Outils
1. Java Development Kit (JDK)
Version requise: Java 17 ou supérieure
Vérification:
java -version
Résultat attendu:
java version "17.0.x" ou supérieure
2. Apache Maven
Version requise: Maven 3.9 ou supérieure (recommandé pour la stabilité)
Vérification:
mvn -version
Résultat attendu:
Apache Maven 3.9.x ou supérieure
Java version: 17.x.x
Note: Maven 3.9+ offre une meilleure stabilité et compatibilité avec Java 17+.
3. Visual Studio Code
Extensions requises:
- Extension Pack for Java
- Spring Boot Extension Pack
Diagramme de l'Environnement de Développement
5. Plan de l'Exercice Pratique
Objectif
Apprendre à créer un contrôleur REST pour gérer les requêtes HTTP en créant une application Spring Boot complète.
Étapes de l'Exercice
Détails des Étapes
Étape 1: Configuration du Projet
Utiliser Spring Initializr pour générer un projet Spring Boot avec:
- Project: Maven
- Language: Java
- Spring Boot Version: 3.x
- Dependencies: Spring Web, Spring Boot DevTools
Étape 2: Création du Modèle
Créer une classe Card dans le package model avec les attributs nécessaires.
Étape 3: Création du Contrôleur
Créer une classe CardController dans le package controller avec:
- Annotation
@RestController - Annotation
@RequestMapping("/cards") - Méthodes avec
@GetMapping,@PostMapping, etc.
Étape 4: Compilation et Exécution avec Maven
Commandes Maven essentielles:
Option 1: Commandes séparées
# Nettoyer le projet
mvn clean
# Compiler et installer (sans tests)
mvn install -DskipTests
# Exécuter l'application
mvn spring-boot:run
Option 2: Commande combinée (RECOMMANDÉE)
# Tout en une seule commande
mvn clean install -DskipTests spring-boot:run
Explication des commandes:
mvn clean: Supprime les fichiers compilés précédentsmvn install: Compile le projet et crée le fichier JAR-DskipTests: Ignore l'exécution des tests (plus rapide pour le développement)spring-boot:run: Démarre l'application Spring Boot
Note: La commande combinée est plus efficace car elle exécute tout le cycle en une seule fois.
Étape 6: Test
Tester les endpoints:
http://localhost:8080/cards/hello- Utiliser Postman pour tester les autres méthodes
6. Structure du Projet Spring Boot
7. Cycle de Vie d'une Requête HTTP
Concepts Clés à Retenir
1. Séparation des Responsabilités
2. Annotations Spring Boot
- @RestController = @Controller + @ResponseBody (retourne automatiquement du JSON)
- @RequestMapping définit le chemin de base
- @GetMapping/@PostMapping/@PutMapping/@DeleteMapping correspondent aux méthodes HTTP
3. Format de Réponse
Par défaut, Spring Boot convertit automatiquement les objets Java en JSON grâce à Jackson.
Conclusion
Cette lecture préparatoire vous a fourni:
- Une compréhension des services web et de leur fonctionnement
- La connaissance des annotations Spring Boot essentielles
- La distinction entre Modèle et Contrôleur
- Les prérequis techniques nécessaires
- Un aperçu du plan de l'exercice pratique
Vous êtes maintenant prêt à passer à l'exercice pratique où vous allez créer votre premier RestController!
Important: Si quelque chose n'est pas clair, n'hésitez pas à relire cette section ou à poser des questions. Une bonne compréhension théorique facilitera grandement la pratique.