Hjelp og kundeservice
Fant ingen treff på dette søket
Integrasjoner

API: Paginering


De fleste spørringer som returnerer mer enn ett element (en array) bruker paginering, altså retur av delsett av dataene. Vi benytter standard GraphQL-støtte for paginering.

Et endepunkt som støtter paginering har en returtype som slutter med Connection. Endepunkter som støtter paginering kan ta inn fire ekstra valgfrie argumenter: first, last, before og after. Argumentene first og last benyttes for å bestemme antall elementer som skal returneres, for eksempel saleInvoices(first: 5) vil returnere kun de første 5 fakturaene. Om du ikke oppgir noen first: så er det 100 elementer som vil bli returnert. Det er ikke mulig å spørre om mer enn 100 av gangen heller. Argumentene before og after er en offset som tar en peker (cursor) som input. Se eksemplene nedenfor for forklaring hvordan du finner og bruker denne.

I følgende spørring henter vi første 5 fakturaer, og vi spør om feltene nodes, edges og pageInfo.

POST /api/v1/graphql

query {
  saleInvoices(first: 5) {
    nodes { 
      id invoiceNumber # Felter som returneres for hver node
    }
    edges { # En liste av noder og en peker til noden
      cursor # Peker til denne noden
      node { id } # Node med felter som skal returneres
    }
    pageInfo { # Informasjon om det er flere sider med peker til start og slutt på gjeldende side
      hasPreviousPage # Om det er flere resultater før denne siden
      hasNextPage # Om det er flere resultater etter denne siden
      startCursor # Peker til noden på starten av denne siden
      endCursor # Peker til noden på slutten av denne siden 
    }
  }
}

JSON Resultat

{
  "data": {
    "saleInvoices": {
      "nodes": [
        {
          "id": "QWzh2B",
          "invoiceNumber": 1005
        },
        {
          "id": "GbmhNQ",
          "invoiceNumber": 1004
        }
      ],
      "edges": [
        {
          "cursor": "MQ",
          "node": {
            "id": "QWzh2B"
          }
        },
        {
          "cursor": "Mg",
          "node": {
            "id": "GbmhNQ"
          }
        }
      ],
      "pageInfo": {
        "hasPreviousPage": false,
        "hasNextPage": true,
        "startCursor": "MQ",
        "endCursor": "Mg"
      }
    }
  }
}

Som vist i spørringen over får vi 5 resultater per side og om vi ønsker å laste neste side kan vi gjenta spørringen med en endring:

# Her bruker vi 'endCursor' fra forrige spørring og bruker argumentet 'after' for å hente resultater etter noden med peker 'Mg'
query {
  saleInvoices(first: 5, after: "Mg") {
    nodes { 
      id invoiceNumber
    }
    edges {
      cursor
      node { id }
    }
    pageInfo { 
      hasPreviousPage
      hasNextPage
      startCursor
      endCursor
    }
  }
}

Les mer om GraphQL paginering

Luca Regnskap

Enkelt, rimelig og bekymringsfritt regnskap for små bedrifter.

For kun 99,-/måned kan du fakturere dine kunder, holde regnskapet under kontroll, og rapportere det staten skal ha.

Prøv gratis i 30 dager

Relaterte artikler

Vi bruker informasjonskapsler (cookies) for å forbedre brukeropplevelsen. Les mer