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 produitfamille(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 invalides500 Internal Server Error: Erreur serveur lors de la récupération des données