Paginació i ordenació

Paginació i ordenació

Recorre i ordena llistes grans de resultats.

Paginació per cursor

Els camps de llista tornen connexions estil Relay. Avança amb first + after, o retrocedix amb last + before, usant els cursors que torna pageInfo.

  • first / afterTorna els primers N elements després d'un cursor (avanç).
  • last / beforeTorna els últims N elements abans d'un cursor (retrocés).
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
      }
    }
  }
}

Forma de la connexió

Cada connexió exposa una llista de edges, un objecte pageInfo i un totalCount.

  • edges[].nodeL'element en si — demana els camps que necessites dins de node.
  • edges[].cursorUn cursor opac que apunta a este element, per a paginar des d'ací.
  • pageInfo.hasNextPage / hasPreviousPageSi hi ha més elements en eixa direcció.
  • pageInfo.startCursor / endCursorPassa endCursor com el següent after per a obtindre la pàgina següent.
  • totalCountNombre total d'elements en totes les pàgines.
RESPOSTA
{
  "totalCount": 128,
  "edges": [
    {
      "cursor": "Y3Vyc29yOjE5",
      "node": { "id": "rprdbtyvc51ys7g7xq9xwra8cm", "friendlyId": 20, "title": "..." }
    }
  ],
  "pageInfo": {
    "hasNextPage": true,
    "endCursor": "Y3Vyc29yOjE5"
  }
}

Ordenació

Passa un objecte orderBy amb un field i una direction. Els camps disponibles depenen de la connexió.

  • orderBy.fieldEl camp pel qual ordenar. Per exemple, CREATED_AT.
  • orderBy.directionASC per a ascendent o DESC per a descendent.
orderBy.graphql
issues(orderBy: { field: CREATED_AT, direction: DESC })