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 / endCursorPassaendCursorcom el següentafterper 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.directionASCper a ascendent oDESCper a descendent.
orderBy.graphql
issues(orderBy: { field: CREATED_AT, direction: DESC })