Gå til hovedinnhold

Begrensninger

Ratelimiter

API-et implementerer en ratelimiter for å forhindre overbelastning. Denne funksjonen opererer basert på tre nøkkelparametere: Tidsvindu-størrelse, antall kall, og timeout.

Tidsvindu

Tidsvinduet angir varigheten mellom hver tilbakestillingsperiode for tellingen av antall kall til API-et.

  • Standardverdi: 1000 millisekunder

Antall Kall

Dette er det tillatte antallet kall i hvert tidsvindu fra en enkelt klient.

  • Standardverdi: 40 kall per tidsvindu

Timeout

Timeout-parameteren definerer hvor lenge en forespørsel kan stå i kø og vente på et ledig tidsvindu før den avvises med en 429 - Too Many Requests-feil.

  • Standardverdi: 1000 millisekunder (tilsvarende ett tidsvindu)

Ytelsesberegning

Med de standardverdiene som er satt, tillater ratelimiteren et gjennomsnitt på 40 kall per sekund.

Justering av Parametere

For å forhindre overbelastning i perioder med høy last, kan disse verdiene justeres. Dette gir API-et fleksibilitet til å håndtere varierende lastnivåer.

Paginering

Spørringer mot NVDB API kan returnere et stort antall objekter. For å begrense belastningen på APIet og for å unngå store responsvolumer, anbefales det at brukere benytter paginering for å laste ned store resultatsett.

Parametere for Paginering

Paginering styres ved hjelp av to parametere:

  • antall: Angir antall objekter som skal returneres i hver forespørsel.
  • start: En markør som angir startpunktet for objektene som skal returneres.

Øvre Grense for antall

Den øvre grensen for antall varierer basert på responsstørrelsen og kan variere fra endepunkt til endepunkt. Dersom en forespørsel angir et antall som overskrider maksimumsgrensen, vil maksimumsverdien automatisk bli benyttet.

Bruk av start-markør

start-markøren produseres automatisk av APIet og kan ikke utledes av brukeren. Denne markøren styrer hvilke objekter som blir returnert i den påfølgende siden av responsen.

Metadata-Konvolutt

Responsen på spørringer vil inkludere en metadata-konvolutt som inneholder viktig informasjon:

  • Antall objekter hentet og totalt antall objekter.
  • Gjeldende sidestørrelse.
  • start-markør og URL for neste side av resultatsettet.

Håndtering av fullført Paginering

Når alle objekter i et resultatsett er returnert, vil responsen inneholde samme start-markør sammen med en tom side.

Eksempel

{
"objekter": [
...
],
"metadata": {
"antall": 205195,
"neste": {
"href": "https://nvdbapiles.atlas.vegvesen.no/vegobjekter/api/v4/vegobjekter/5?start=1",
"start": "2"
},
"returnert": 1000,
"sidestørrelse": 1000
}
}