Pagination – Récupérer tous les dossiers d'une démarche
Exemple de cas d'usage : votre démarche est aujourd'hui close et vous souhaitez récuperer les informations des dossiers pour faire de l'analyse de donnée.
Pour paginer vos requetes, il faut ajouter les curseurs à votre requete GraphQL, Pour ce faire ajouter le PageInfoFragment et déclarez les variables de pagination sur la ressource paginée Ex :
query getDemarche(
$demarcheNumber: Int!
$order: Order
$first: Int
$after: String
$includeDossiers: Boolean = true
) {
demarche(number: $demarcheNumber) {
dossiers(
order: $order
first: $first
after: $after
) @include(if: $includeDossiers) {
pageInfo {
...PageInfoFragment
}
nodes {
...DossierFragment
}
pageInfo {
endCursor
hasNextPage
}
}
}
}
fragment DossierFragment on Dossier {
id
}
fragment PageInfoFragment on PageInfo {
hasPreviousPage
hasNextPage
endCursor
}Vous pouvez tester en executant le script suivant avec les variables d'environnement adaptées :
Pour faciliter la lecture du code, la query GraphQL est fournie en PJ
Ensuite, vous pouvez executer ce code ruby qui :
cherche a retrouver le dernier curseur que vous avez utiliser
s'il est présent, le ré-utilise pour requeter la page suivante (sinon il repart a 0)
requete la page
sauve le curseur
Vous pouvez ainsi executer le script plusieurs fois pour parcourir toutes les pages de dossier de votre démarche
Mis à jour