Entités & sous-documents
On finalise Campagne (avec List<Commande> embarquée), Commande, et Fournisseur (avec ses Palier). Les types monétaires en BigDecimal (cf. Mongo ch. 16).
public class Commande { private int litres; private String commune; private String adresse; }
La connexion à MongoDB
On configure l'URI (locale en dev, Atlas en prod via secret).
spring.data.mongodb.uri=mongodb://localhost:27017/fioul # dev # prod : spring.data.mongodb.uri=${MONGODB_URI}
Brancher le service sur le repository
Le service utilise désormais repo.findAll(), repo.save()… Les données factices disparaissent ; l'API lit et écrit dans MongoDB.
POST /api/campagnes, relis-la dans Compass : elle doit apparaître dans la collection campagnes.Un jeu de données de départ
On peut initialiser des fournisseurs et quelques campagnes au démarrage (un CommandLineRunner), pour tester tout de suite.
Connecte l'API à ta base fioul, insère 2-3 fournisseurs (avec paliers) et vérifie de bout en bout : POST une campagne, ajoute des commandes, consulte le détail — le volumeTotal et le prixLitre doivent se calculer.
- Entités finalisées, monétaire en
BigDecimal. - Connexion via
spring.data.mongodb.uri(secret en prod). - Service branché sur le vrai repository ; jeu de données de départ.