Skip to content

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 QueryBuilder de 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 types float.