Backend & applications web
Product Management API · Spring Boot
Une API REST Spring Boot 4 de gestion de produits, en couches controller, service, repository et modèle, avec des produits rattachés à leurs utilisateurs.
- Projet individuel
- endpoints REST
- 7
- entités liées : produit et utilisateur
- 2
- version de Spring Boot
- 4.0
01Le point de départ
Contexte & mission
Le problème
Avant de construire des backends plus ambitieux, il faut maîtriser les fondamentaux : un contrat REST clair, des couches qui ne se mélangent pas et un modèle JPA bien mappé.
La mission
Construire une API CRUD propre sur deux entités liées, produits et utilisateurs, avec Spring Boot, Spring Data JPA et MySQL.
Mon rôle
Projet conçu et développé seul.
02Réalisation
Ce que j’ai fait
CRUD des produits
Cinq endpoints : lister, lire, créer, modifier et supprimer, avec des réponses HTTP adaptées via ResponseEntity.
Produits par utilisateur
Deux endpoints dédiés pour lister et créer les produits d’un utilisateur, via une relation ManyToOne.
Modèle JPA
Contraintes de colonnes (non nul, longueur), date de création posée par @PrePersist, et relation masquée à la sérialisation pour éviter les boucles JSON.
Couches séparées
Contrôleurs, services et repositories Spring Data JPA distincts pour les produits et les utilisateurs.
03Conception
Architecture
Architecture en couches : le contrôleur REST reçoit le JSON, le service porte la logique, le repository Spring Data JPA accède à MySQL via Hibernate.
- ClientHTTP · JSON
- Controller7 endpoints
- Service
- RepositorySpring Data JPA
- MySQLHibernate
04Impact
Résultats
- Une API CRUD complète sur les produits, plus des routes par utilisateur.
- Un modèle JPA contraint, sans boucle de sérialisation.
05Bilan
Ce que j’en retiens
Ce que ce projet démontreLes bases que j’applique à tous mes backends Java : couches nettes, contrat REST lisible, modèle JPA rigoureux.
06Technologies
Stack complète
- Java 17
- Spring Boot 4
- Spring Web MVC
- Spring Data JPA
- Hibernate
- MySQL
- Maven