Pagination
Basée sur un système de curseur
La pagination sur l’API GraphQL se fait par « curseur ». Nous vous renvoyons à la définition faite par Microsoft d'un curseur : https://learn.microsoft.com/fr-fr/office/client-developer/access/desktop-database-reference/what-is-a-cursor
Le curseur est ainsi nommé car il indique la position active dans le jeu de résultats, à l'instar du curseur de l'écran de votre ordinateur.
Concrètement, nous suivons la spec relay : https://relay.dev/graphql/connections.htm. Pour récupérer la prochaine page il faut passer à l’API le « curseur » de la fin de la page précédente.
Application concrète
Première requete
Voici un exemple. On commence par faire une query pour récupérer les 100 premiers dossiers :
Dans le résultat obtenu il faut lire la valeur du « curseur » dans le champ demarche.dossiers.pageInfo.endCursor
.
Deuxième requête, et toutes autres :
On peut passer alors ce « curseur » comme argument after
dans la prochaine query. Et ainsi de suite jusqu’à ce que le champ demarche.dossiers.pageInfo.hasNextPage
soit égal à false
.
Pour un exemple d'implementation, rendez-vous sur :
Pagination – Récupérer tous les dossiers d'une démarcheDernière mise à jour