Skip to content

Instantly share code, notes, and snippets.

@tchak
Last active January 15, 2021 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tchak/aa78545af7523a3a326a502877301d39 to your computer and use it in GitHub Desktop.
Save tchak/aa78545af7523a3a326a502877301d39 to your computer and use it in GitHub Desktop.

Pagination GraphQL

La pagination sur l'API GraphQL se fait par "curseur". Ça veut dire que pour récupérer la prochaine page il faut passer à l'API le "curseur" de la fin de la page précédente.

Voici un exemple. On commence par faire une query pour récupérer les 100 premiers dossiers.

query {
  demarche(number: 123) {
    dossiers(first: 100) {
      pageInfo {
        endCursor
        hasNextPage
      }
      nodes {
        id
        number
        champs {
          id
          label
        }
      }
    }
  }
}

Dans le résultat obtenu il faut lire la valeur du "curseur" dans le champ demarche.dossiers.pageInfo.endCursor . 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 égale à false.

query {
  demarche(number: 123) {
    dossiers(first: 100, after: "abc") {
      pageInfo {
        endCursor
        hasNextPage
      }
      nodes {
        id
        number
        champs {
          id
          label
        }
      }
    }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment