0% ont trouvé ce document utile (0 vote)
1 vues5 pages

TP Spring Et Rest API Partie 2

Kakkaksk

Transféré par

Sel 2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues5 pages

TP Spring Et Rest API Partie 2

Kakkaksk

Transféré par

Sel 2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

EMSI-Marrakech

Filière : 4IIR
2025/2026

TP : Spring boot et api Rest Partie 2


Objectif du TP
Ce TP est la continuation du TP précédent. Le but est de renvoyer des réponses à l’aide de
ResponseEntity au lieu des données directement.
Modifier le Contrôleur
Dans le contrôleur ProduitController ajouter la dépendance ProduitService et l’injecter par
constructeur.
Endpoints à créer :
1.​ GET /api/produits : Liste tous les produits
2.​ GET /api/produits/{id} : Récupère un produit par ID
3.​ POST /api/produits : Crée un nouveau produit
4.​ PUT /api/produits/{id} : Met à jour un produit existant
5.​ DELETE /api/produits/{id} : Supprime un produit
6.​ GET /api/produits/search?nom=xxx : Recherche par nom
Annotations à utiliser :
●​ @GetMapping, @PostMapping, @PutMapping, @DeleteMapping
●​ @PathVariable pour les IDs dans l'URL
●​ @RequestParam pour les paramètres de recherche
●​ @RequestBody pour les données JSON
Au lieu de renvoyer les données directement comme dans le TP précédent, renvoyer les
réponses avec les codes statut appropriés en utilisant ResponseEntity.

1
EMSI-Marrakech
Filière : 4IIR
2025/2026

Analyse des deux exemples fournis :


Exemple 1: GET tous les produits

2
EMSI-Marrakech
Filière : 4IIR
2025/2026

Explication :
●​ @GetMapping = méthode HTTP GET
●​ ResponseEntity<List<Produit>> = retourne une réponse HTTP avec liste de produits
●​ [Link]() = appelle le service
●​ [Link](produits) = retourne HTTP 200 avec les données
Exemple 2: GET par ID

Explication :
●​ @GetMapping("/{id}") = GET avec paramètre dans l'URL
●​ @PathVariable Long id = récupère l'ID depuis l'URL
●​ if (produit != null) = vérifie si le produit existe
●​ [Link](produit) = 200 OK si trouvé
●​ [Link]().build() = 404 Not Found si non trouvé
Instructions :
1.​ Implémenter POST /api/produits
●​ Utilisez @PostMapping

3
EMSI-Marrakech
Filière : 4IIR
2025/2026

●​ Utilisez @RequestBody pour récupérer les données JSON


●​ Appelez [Link](produit)
●​ Retournez [Link]([Link]).body(...)
1.​ Implémenter PUT /api/produits/{id}
●​ Combinaison de @PutMapping et @PathVariable
●​ Appelez [Link](id, produit)
●​ Gérez le cas où le produit n'existe pas (retourner 404)
2.​ Exercice 3: Implémenter DELETE /api/produits/{id}
●​ Utilisez @DeleteMapping
●​ Appelez [Link](id)
●​ Retournez [Link]().build() pour 204 No Content
3.​ Exercice 4: Implémenter GET /api/produits/search
●​ Utilisez @RequestParam pour le paramètre "nom"
●​ Appelez [Link](nom)
●​ Retournez la liste des résultats
Partie 5 : Tests avec Postman
●​L'application démarre sur [Link]
●​ Testez directement : [Link]
Configuration Postman
1.​ Ouvrez Postman
2.​ L'URL de base est : [Link]

Scénarios de Test
Test 1: Récupérer tous les produits
GET [Link]
Résultat attendu : Liste de 3 produits en JSON
Test 2: Récupérer un produit spécifique
GET [Link]
Résultat attendu : Produit avec ID 1
Test 3: Créer un nouveau produit
POST [Link]
Content-Type: application/json
{
4
EMSI-Marrakech
Filière : 4IIR
2025/2026

"nom": "Casque Audio",


"description": "Casque sans fil Bluetooth",
"prix": 1000.99
}
Résultat attendu : Produit créé avec ID auto-généré
Test 4: Modifier un produit
PUT [Link]
Content-Type: application/json
{
"nom": "Laptop Gaming Pro",
"description": "Ordinateur portable gaming",
"prix": 12999.99
}
Résultat attendu : Produit modifié
Test 5: Supprimer un produit
DELETE [Link]
Test 6: Rechercher des produits
GET [Link]
Résultat attendu : Produits contenant "lap" dans le nom

Vous aimerez peut-être aussi