Pagination
L’API Altium 365 utilise une pagination basée sur des curseurs conformément à la spécification de connexion Relay. Les requêtes de collection renvoient un type connection contenant une liste de nœuds, des métadonnées de pagination et des curseurs permettant de naviguer vers l’avant ou vers l’arrière dans les résultats.
Structure de la connexion
Une réponse paginée a la forme suivante :
query {
someCollection {
nodes { # les éléments de cette page
...
}
pageInfo { # métadonnées de pagination
hasNextPage
hasPreviousPage
startCursor
endCursor
}
totalCount # nombre total d’éléments (toutes les pages)
}
}
Récupération des pages
Utilisez les arguments first et after pour paginer vers l’avant dans une collection :
query {
desProjects(first: 20, after: "{cursor}") {
nodes {
id
name
}
pageInfo {
hasNextPage
endCursor
}
}
}
-
first– nombre d’éléments à renvoyer (taille de page) -
after– curseur marquant la fin de la page précédente ; à omettre lors de la première requête
La valeur endCursor de pageInfo devient la valeur after pour la page suivante. Continuez jusqu’à ce que hasNextPage soit false.
Pour paginer vers l’arrière, utilisez last et before avec startCursor.
Première requête
Pour la première page, omettez l’argument after :
query {
desProjects(first: 20) {
nodes {
id
name
updatedAt
}
pageInfo {
hasNextPage
endCursor
}
totalCount
}
}
Utilisez totalCount pour déterminer combien de pages prévoir avant de commencer la pagination.
Compter sans récupérer les éléments
Si vous avez seulement besoin du nombre total, vous pouvez omettre nodes entièrement :
query {
desProjects {
totalCount
}
}