eadl:bloc3:dev_av:td1

Ceci est une ancienne révision du document !


Séance 1

Initialisation et structuration de projet

API E-commerce - Architecture

  • Spring Boot 3+
  • Base de données : H2 (fichier)
  • JPA (Hibernate)
  • Build : Maven
  • Tests : JUnit 5
  • GitHub classRoom

Mise en place d'une API REST pour la gestion des utilisateurs, des produits et des commandes, utilisable dans le cadre d'une application web e-commerce générique.

End points

Users

POST /users - Créer un utilisateur
GET /users/{id} - Récupérer un utilisateur
GET /users/{id}/recommendations - Produits recommandés pour l'utilisateur

Products

POST /products - Créer un produit
GET /products/{id} - Récupérer un produit  
PUT /products/{id}/stock - Mettre à jour le stock
GET /products - Lister les produits (avec filtres optionnels)

Orders

POST /orders - Créer une commande
GET /orders/{id} - Récupérer une commande
GET /users/{userId}/orders - Historique des commandes d'un user

Modèle de données

Domain ModelsUserUUID idString nameString emailProductUUID idString nameBigDecimal priceInteger stockCategoryUUID idString nameString descriptionOrderUUID idBigDecimal totalAmountOrderStatus statusLocalDateTime createdAtOrderItemUUID idInteger quantityBigDecimal unitPriceOrderStatusPENDINGCONFIRMEDSHIPPEDDELIVEREDCANCELLEDcontains11..*belongsTo0..*1references0..*1prefers0..*0..1belongsTo0..*1

Données exemple

User

{
  "id": "550e8400-e29b-41d4-a716-446655440001",
  "name": "Alice Martin",
  "email": "alice.martin@example.com",
  "preferredCategoryIds": [
    "550e8400-e29b-41d4-a716-446655440010",
    "550e8400-e29b-41d4-a716-446655440011"
  ]
}

Product

{
  "id": "550e8400-e29b-41d4-a716-446655440020",
  "name": "iPhone 15 Pro",
  "price": 1199.99,
  "stock": 25,
  "categoryId": "550e8400-e29b-41d4-a716-446655440010"
}

Order

{
  "id": "550e8400-e29b-41d4-a716-446655440030",
  "userId": "550e8400-e29b-41d4-a716-446655440001",
  "items": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440040",
      "productId": "550e8400-e29b-41d4-a716-446655440020",
      "quantity": 2,
      "unitPrice": 1199.99
    }
  ],
  "totalAmount": 2399.98,
  "status": "CONFIRMED",
  "createdAt": "2024-01-15T14:30:00Z"
}

Order item

{
  "id": "550e8400-e29b-41d4-a716-446655440040",
  "productId": "550e8400-e29b-41d4-a716-446655440020",
  "quantity": 2,
  "unitPrice": 1199.99
}

Category

{
  "id": "550e8400-e29b-41d4-a716-446655440010",
  "name": "Electronics",
  "description": "Electronic devices and accessories"
}

  • eadl/bloc3/dev_av/td1.1758041118.txt.gz
  • Dernière modification : il y a 20 heures
  • de jcheron