La pagination décalée est facile à comprendre, mais un ensemble de données changeant peut décaler les lignes entre les requêtes. Un curseur peut pointer vers la dernière position de tri stable et réduire les résultats en double ou manquants lors du parcours.
Utiliser un ordre déterministe
- Triez selon un champ stable et unique, ou ajoutez un critère de départage unique tel qu'un identifiant.
- Encodez les dernières valeurs de tri vues dans un curseur opaque plutôt que d'accepter des expressions de base de données arbitraires.
- Renvoie un curseur suivant uniquement lorsqu'une autre page est disponible et définit ce que signifie un résultat vide.
Gardez les curseurs étendus et délimités
Validez un curseur, liez-le au contexte de filtre et d'autorisation approprié, et définissez une taille de page maximale. Traitez-le comme un état de navigation plutôt que comme un secret ou une autorisation.
Testez les insertions et les suppressions entre les requêtes, les curseurs répétés et les entrées de curseur non valides. La pagination du curseur améliore la cohérence du parcours, mais elle ne crée pas d'instantané figé à moins que l'API n'en fournisse un explicitement.
