Devlog #1 : Fondations, Pagination et Filtrage
Focus : Mise en place du catalogue produit et structuration des premiers endpoints.
Ce qui a été mis en place :
- Sécurité & Firewall : Configuration du firewall Symfony pour différencier les endpoints publics des ressources privées nécessitant une authentification.
- Identifiants Publics : Utilisation d'UUID Base 62 pour les catégories et produits afin d'exposer des identifiants uniques, non-séquentiels et optimisés pour les URLs.
- Catalogue Produit :
- Récupération de la liste des catégories.
- Récupération du détail d'un produit et de ses variants.
- Filtrage Dynamique : Implémentation d'une pagination basée sur le
QueryBuilderde Doctrine avec plusieurs filtres : - Recherche par titre.
- Tri alphabétique, par date d'ajout et par prix (ASC/DESC).
- Filtrage par type (produit sur demande / sur mesure).
🧠 Points d'intérêt technique :
- Enums pour le Clean Code : Centralisation des noms de filtres dans un Enum pour sécuriser le typage et éviter les répétitions de chaînes de caractères.
- Normaliseurs de DTO : Utilisation de normaliseurs personnalisés pour "aplatir" le JSON final, renommer des champs et retirer les profondeurs inutiles.
- Optimisation SQL : Stockage des notes (ratings) via un
smallint(0 à 10) en base de données pour garantir précision et performance lors des calculs de moyennes, évitant les limites des typesfloat.