Pagination et tri

Pagination et tri

Parcourez et triez de longues listes de résultats.

Pagination par curseur

Les champs de liste renvoient des connexions de style Relay. Avancez avec first + after, ou reculez avec last + before, à l'aide des curseurs renvoyés dans pageInfo.

  • first / afterRenvoie les N premiers éléments après un curseur (pagination avant).
  • last / beforeRenvoie les N derniers éléments avant un curseur (pagination arrière).
paginatedIssues.graphql
query ListIssues($orgId: ID!, $first: Int!, $after: Cursor) {
  organization(id: $orgId) {
    issues(
      first: $first
      after: $after
      orderBy: { field: CREATED_AT, direction: DESC }
    ) {
      totalCount
      edges {
        cursor
        node {
          id
          friendlyId
          title
        }
      }
      pageInfo {
        hasNextPage
        endCursor
      }
    }
  }
}

Forme de la connexion

Chaque connexion expose une liste d'edges, un objet pageInfo et un totalCount.

  • edges[].nodeL'élément lui-même : demandez les champs dont vous avez besoin dans node.
  • edges[].cursorUn curseur opaque qui pointe sur cet élément, pour paginer à partir d'ici.
  • pageInfo.hasNextPage / hasPreviousPageIndique s'il existe d'autres éléments dans ce sens.
  • pageInfo.startCursor / endCursorPassez endCursor comme prochaine valeur de after pour obtenir la page suivante.
  • totalCountNombre total d'éléments, toutes pages confondues.
RÉPONSE
{
  "totalCount": 128,
  "edges": [
    {
      "cursor": "Y3Vyc29yOjE5",
      "node": { "id": "rprdbtyvc51ys7g7xq9xwra8cm", "friendlyId": 20, "title": "..." }
    }
  ],
  "pageInfo": {
    "hasNextPage": true,
    "endCursor": "Y3Vyc29yOjE5"
  }
}

Tri

Passez un objet orderBy avec un field et une direction. Les champs disponibles dépendent de la connexion.

  • orderBy.fieldLe champ selon lequel trier. Par exemple, CREATED_AT.
  • orderBy.directionASC pour un tri croissant ou DESC pour un tri décroissant.
orderBy.graphql
issues(orderBy: { field: CREATED_AT, direction: DESC })