Tous les projets

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

  1. CRUD des produits

    Cinq endpoints : lister, lire, créer, modifier et supprimer, avec des réponses HTTP adaptées via ResponseEntity.

  2. Produits par utilisateur

    Deux endpoints dédiés pour lister et créer les produits d’un utilisateur, via une relation ManyToOne.

  3. 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.

  4. 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.

Les couches de l’API
  1. ClientHTTP · JSON
  2. Controller7 endpoints
  3. Service
  4. RepositorySpring Data JPA
  5. 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émontre

Les 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