Aller au contenu principal

API Produits

L'API Produits permet de gérer le catalogue de produits avec des fonctionnalités de recherche, filtrage et pagination.

Obtenir les produits

  • URL : /api/products
  • Méthode : GET
  • Description : Récupérer les produits avec pagination et filtrage

Paramètres de requête

  • page (optionnel) : Numéro de page (défaut : 1, min : 1)
  • limit (optionnel) : Éléments par page (défaut : 20, min : 1, max : 100)
  • search (optionnel) : Terme de recherche pour le nom/description du produit
  • famille (optionnel) : Filtrer par famille/catégorie de produit

Exemple de requête

GET /api/products?page=1&limit=10&search=laptop&famille=electronics

Réponse

{
"data": [
{
"reference": "PROD-001",
"id": 1,
"sku": "SKU-001",
"nom": "Laptop Gaming",
"description": "Ordinateur portable gaming haute performance",
"categories": "Électronique > Ordinateurs > Laptops",
"categoriesPath": ["Électronique", "Ordinateurs", "Laptops"],
"marque": "TechBrand",
"statutProduit": "active",
"prixDeVenteCents": 129900,
"prixDeVente": 1299.0,
"ean": "1234567890123",
"photosUrls": ["https://example.com/photo1.jpg"],
"poids": "2.5kg",
"couleurs": "Noir, Argent",
"dimensions": "35x25x2cm",
"caracteristiquesTechniques": "Intel i7, 16GB RAM, 512GB SSD",
"documentationUrl": "https://example.com/docs",
"dateFinReapprovisionnement": "2024-12-31T00:00:00Z",
"dateFinDeVie": "2027-12-31T00:00:00Z",
"quantiteMin": 5,
"packaging": "Boîte en carton",
"dureeGarantie": 24,
"prixDAchatFournisseurCents": 99900
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 100,
"totalPages": 10
}
}

Obtenir les statistiques des produits

  • URL : /api/products/stats
  • Méthode : GET
  • Description : Obtenir les statistiques et compteurs des produits

Réponse

{
"totalProducts": 1500,
"activeProducts": 1200,
"categoriesCount": 25,
"brandsCount": 50,
"lastSync": "2024-01-15T10:30:00Z"
}

Modèle de données - Produit

interface Product {
reference: string;
id?: number;
sku?: string;
nom: string;
description?: string;
categories: string;
categoriesPath: string[];
marque?: string;
statutProduit?: string;
prixDeVenteCents: number;
prixDeVente: number;
ean?: string;
photosUrls: string[];
poids?: string;
couleurs?: string;
dimensions?: string;
caracteristiquesTechniques?: string;
documentationUrl?: string;
dateFinReapprovisionnement?: string;
dateFinDeVie?: string;
quantiteMin?: number;
packaging?: string;
dureeGarantie?: number;
prixDAchatFournisseurCents?: number;
}

Codes d'erreur possibles

  • 400 Bad Request : Paramètres de requête invalides
  • 500 Internal Server Error : Erreur serveur lors de la récupération des données