Paginering

Paginering

Liste-endpoints i Fenerum API’et bruger sidebaseret paginering til effektivt at hente store datasæt. Som standard indeholder hver side 20 elementer.

Parametre for paginering

Alle liste-endpoints understøtter følgende forespørgselsparametre (query parameters):

  • page - Sidenummer, der skal hentes (standard: 1)
  • page_size - Antal resultater pr. side (standard: 20, maks.: 100)

Svarformat

Paginerede svar indeholder følgende felter:

FeltTypeBeskrivelse
countintegerSamlet antal elementer tilgængelige (på tværs af alle sider)
nextstring (url), nullableURL til at hente næste side med resultater
previousstring (url), nullableURL til at hente den forrige side med resultater
resultsarrayArray af objekter for den aktuelle side

Eksempel på forespørgsel

GET /api/v1/accounts/?page=2&page_size=50

Eksempel på svar

{
  "count": 247,
  "next": "https://app.fenerum.com/api/v1/accounts/?page=3&page_size=50",
  "previous": "https://app.fenerum.com/api/v1/accounts/?page=1&page_size=50",
  "results": [
    {
      "uuid": "123e4567-e89b-12d3-a456-426614174000",
      "code": "CUST001",
      "name": "Example Customer"
    }
    // ... more results
  ]
}

Iterere gennem sider

For at hente alle elementer, følg next-URL’en, indtil den er null:

url = '/api/v1/accounts/'
all_accounts = []

while url:
    response = requests.get(url, headers=headers)
    data = response.json()
    all_accounts.extend(data['results'])
    url = data['next']

Filtrering

Mange liste-endpoints understøtter filtrering for at indsnævre resultaterne. Filtre angives via query-parametre.

Grundlæggende filtrering

Filtrér efter en specifik feltværdi:

GET /api/v1/invoices/?account=CUST001

Sammenligningsfiltre

Brug suffikser til avanceret filtrering:

SuffiksBetydningEksempel
__ltMindre endamount__lt=100
__lteMindre end eller lig medcreated_date__lte=2025-12-31
__gtStørre endamount__gt=50
__gteStørre end eller lig medcreated_date__gte=2025-01-01

Eksempel: Datointerval

Hent fakturaer oprettet i december 2025:

GET /api/v1/invoices/?created_date__gte=2025-12-01&created_date__lt=2026-01-01

Kombination af filtre og paginering

Du kan kombinere filtrering med paginering:

GET /api/v1/invoices/?account=CUST001&page=2&page_size=50

Feltet count i svaret viser det samlede antal filtrerede resultater, og next/previous-URL'er bevarer dine filtre.

Bedste praksis

  • Brug passende page_size-værdier baseret på dine behov (mindre til UI, større til dataeksport)
  • Kontrollér altid feltet next for at se, om der findes flere sider
  • Brug filtre til at reducere det samlede antal resultater, før du paginerer
  • Cache resultater, når det er muligt, for at reducere API-kald
  • Gennemgå endpoint-dokumentationen for tilgængelige filtre
Previous
Errors
background logo

Vi fakturerer for mere end 2 millarder årligt for vores kunder. Skal vi hjælpe dig med at sætte din fakturering på autopilot?