Pagination
Paginering
Listeendepunkter i Fenerum API-et bruker sidebasert paginering for å hjelpe deg med å hente store datasett effektivt. Som standard inneholder hver side 20 elementer.
Pagineringparametere
Alle listeendepunkter støtter følgende forespørselsparametere:
page- Sidenummeret som skal hentes (standard: 1)page_size- Antall resultater per side (standard: 20, maks: 100)
Responsformat
Paginerte responser inneholder disse feltene:
| Felt | Type | Beskrivelse |
|---|---|---|
count | integer | Totalt antall elementer tilgjengelig (på tvers av alle sider) |
next | string (url), nullable | URL for å hente neste side med resultater |
previous | string (url), nullable | URL for å hente forrige side med resultater |
results | array | Array med objekter for gjeldende side |
Eksempel på forespørsel
GET /api/v1/accounts/?page=2&page_size=50Eksempel på respons
{
"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 gjennom sider
For å hente alle elementer, følg next-URL-en til den blir 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 listeendepunkter støtter filtrering for å avgrense resultater. Filtre angis via forespørselsparametere.
Grunnleggende filtrering
Filtrer på en bestemt feltverdi:
GET /api/v1/invoices/?account=CUST001Sammenligningsfiltre
Bruk suffikser for avansert filtrering:
| Suffiks | Betydning | Eksempel |
|---|---|---|
__lt | Mindre enn | amount__lt=100 |
__lte | Mindre enn eller lik | created_date__lte=2025-12-31 |
__gt | Større enn | amount__gt=50 |
__gte | Større enn eller lik | created_date__gte=2025-01-01 |
Eksempel: Datointervall
Hent fakturaer opprettet i desember 2025:
GET /api/v1/invoices/?created_date__gte=2025-12-01&created_date__lt=2026-01-01Kombinere filtre og paginering
Du kan kombinere filtrering med paginering:
GET /api/v1/invoices/?account=CUST001&page=2&page_size=50Feltet count i responsen viser totalt filtrerte resultater, og next/previous-URL-ene beholder filtrene dine.
Beste praksis
- Bruk passende
page_size-verdier basert på behovene dine (mindre for UI, større for dataeksporter) - Kontroller alltid feltet
nextfor å avgjøre om det finnes flere sider - Bruk filtre for å redusere totalt antall resultater før du paginerer
- Mellomlagre resultater når mulig for å redusere API-kall
- Se endepunktdokumentasjonen for tilgjengelige filtre