Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Products Pagination #96

Open
Lisadev84 opened this issue Feb 4, 2025 · 0 comments · May be fixed by #100
Open

Products Pagination #96

Lisadev84 opened this issue Feb 4, 2025 · 0 comments · May be fixed by #100
Assignees

Comments

@Lisadev84
Copy link
Collaborator

[Feature] Pagination Spring Data JPA

Description

Afin d'améliorer les performances et l'expérience utilisateur lors de l'affichage des listes de produits, il est nécessaire d’implémenter la pagination dans les endpoints exposant ces listes. L'objectif est d'utiliser les fonctionnalités natives de Spring Data JPA pour gérer cet aspect sans surcharger le contrôleur.

Contexte

Actuellement, les endpoints qui retournent des listes complètes d'objets produits posent des problèmes de performance et de lisibilité pour l'utilisateur final. En intégrant la pagination nous pourrons :

  • Limiter le nombre d'objets renvoyés par requête.
  • Améliorer la réactivité et la scalabilité de l'application.

Critères d'acceptation

  • Pagination

    • Les endpoints existants ou nouveaux doivent accepter les paramètres page et size afin de définir la page actuelle et le nombre d’éléments par page.
    • La réponse doit inclure des métadonnées utiles (numéro de page, nombre total de pages, nombre total d'éléments, etc.).
  • Utilisation de Spring Data JPA

    • S'appuyer sur les fonctionnalités de Pageable fournies par Spring Data JPA.
    • Adapter les repositories et/ou services afin de tirer pleinement parti de ces outils.
  • Tests

    • Mettre à jour (ou ajouter) des tests unitaires et/ou d'intégration afin de valider le comportement de la pagination.
    • Vérifier que les paramètres sont correctement interprétés et que la réponse contient bien les métadonnées nécessaires.

Tâches

  1. Étude et conception

    • Rechercher et documenter les meilleures pratiques d’implémentation de la pagination et du tri avec Spring Data JPA.
    • Identifier les endpoints concernés par cette amélioration.
  2. Implémentation

    • Mettre à jour les méthodes du repository pour accepter un objet Pageable.
    • Modifier les contrôleurs pour traiter les paramètres page, size.
    • Assurer la propagation des paramètres de tri vers la couche service.
  3. Tests

    • Écrire des tests unitaires pour les nouvelles méthodes.
    • Ajouter des tests d'intégration pour vérifier la cohérence des réponses (pagination metadata).
  4. Documentation

    • Mettre à jour la documentation API (Swagger, Postman, etc.) pour inclure les nouveaux paramètres et comportements.

Informations complémentaires

  • Lien utile : Documentation Spring Data JPA - Pagination, Documentation Baeldung
  • Impact : Cette fonctionnalité améliorera l'expérience utilisateur et pourrait servir de base pour d’autres améliorations de performance.
  • Risques : Veiller à ne pas introduire de régressions sur les endpoints existants. Une attention particulière doit être portée sur la gestion des paramètres par défaut pour ne pas impacter les requêtes non paginées.
@Lisadev84 Lisadev84 self-assigned this Feb 4, 2025
@Lisadev84 Lisadev84 linked a pull request Feb 18, 2025 that will close this issue
@Lisadev84 Lisadev84 linked a pull request Feb 18, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant