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:
| Felt | Type | Beskrivelse |
|---|---|---|
count | integer | Samlet antal elementer tilgængelige (på tværs af alle sider) |
next | string (url), nullable | URL til at hente næste side med resultater |
previous | string (url), nullable | URL til at hente den forrige side med resultater |
results | array | Array af objekter for den aktuelle side |
Eksempel på forespørgsel
GET /api/v1/accounts/?page=2&page_size=50Eksempel 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=CUST001Sammenligningsfiltre
Brug suffikser til avanceret filtrering:
| Suffiks | Betydning | Eksempel |
|---|---|---|
__lt | Mindre end | amount__lt=100 |
__lte | Mindre end eller lig med | created_date__lte=2025-12-31 |
__gt | Større end | amount__gt=50 |
__gte | Større end eller lig med | created_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-01Kombination af filtre og paginering
Du kan kombinere filtrering med paginering:
GET /api/v1/invoices/?account=CUST001&page=2&page_size=50Feltet 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
nextfor 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