Hente ut transaksjonslogg
Hente ut veglenker og vegobjekter som er endret via transaksjonslogg.
Hente ut vegnett og vegobjekter som er endret
Dersom du må hente ut endringer i både vegnett og vegobjekter, kan du via transaksjonslogg finne ut hvilke veglenker og vegobjekter som er endret. I transaksjonsloggen skrives det hvilke veglenker og hvilke vegobjekter som er opprettet / endret og slettet.
Uthenting fra transaksjonsloggen styrer du med å sette fra- og til-dato. Lese API tilbyr transaksjonsendepunkter for å se hvilke endringer som er gjort på vegnett og vegobjekt:
Endepunkt | Beskrivelse |
---|---|
/transaksjoner | Svarer med transaksjoner som er utført og tilgjengelig i API Les. |
/transaksjoner/status | Svarer med sist utførte transaksjon. Med parameter ?type=ikke_indeksert får du liste over ikke indekserte transaksjoner. |
Når du henter ut transaksjonene så kommer "created" / "modified" / "deleted" for alle typer vegobjekt og veglenker i samme respons. Hvordan skiller jeg veglenker fra vegobjekt? Oppdateringer på vegnett har type 50001 og 50002. De skiller seg ut fra vegobjekter som går fra type 1 - 999. Se tabell under:
Vegobjekt type | Verdi |
---|---|
3 | Skjerm |
5 | Rekkverk |
... | ... |
50001 | Node - vegnett |
50002 | Lenke - vegnett |
Når du har funnet hvilke veglenker og vegobjekt som er endret via /transaksjoner
endepunkt,
høster du vegnett og vegobjekt med endepunktene /vegnett
og /vegobjekter
Fremgangsmåte for å høste data fra NVDB kontinuerlig:
- Du starter med en initiell høsting av vegnett og vegobjekter, og man tar vare på tidspunktet høstingen ble startet.
- Du kaller /transaksjoner/status og får tidspunkt for sist kjørte transaksjon.
- Om tidspunkt fra forrige punkt ikke har endret seg, så hopper du ut.
- /transaksjoner/status har nyere tidspunkt enn ditt fra-tidspunkt.
- Høst nye transaskjoner med ditt fra-tidspunkt til tidspunkt fanger opp i punkt 2.
- Høst vegobjekter og vegnett i flere iterasjoner med maks 100 ider per request. Du kan få mange ID-er, og det vil da feile med GET-request fordi en GET-request ikke kan inneholde mer enn 2000 tegn.)
- Nå setter du nytt fra-tidspunkt og tar vare på det. Sett fra-tidspunkt til tidspunkt fanget opp i punkt 2.
- Vent en stund / en dag / noen timer.
- Gå til punkt 2.
Se dokumentasjon av vegobjekter endepunkt her.
Eksempel på høsting med transaksjonsendepunkt
Hente ut transaksjoner fra 2023-03-10 fram til dagens dato, eks: 2023-03-16:
https://nvdbapiles-v3.atlas.vegvesen.no/transaksjoner?fra=2023-03-10T00:00:00&til=2023-03-16T00:00:00
(Merk at du må benytte paginering her for å hente ut alle resultatene).
Dette gir meg transaksjoner med vegobjekter og vegnettlenker med id-er som er oppdatert. Disse må så høstes. Det fort blir mange id-er. GET-request har en begrensing på 2000 tegn, så du bør hente ut med maks 100 ider i slengen for å unngå at det feiler.
La oss si at jeg fikk bare ett objekt av type 79 med id=88574849 og id=78771648 og to veglenker med id=2 og id=12
Type | Beskrivelse | URL |
---|---|---|
Segmentert vegnett | Vegnett med vegreferanse, kontraktsområde, riksvegrute | https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert?ider=1,12 |
Usegmentert vegnett | Vegnett | https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser?ider=1,12 |
Vegobjekter | Det var bare 2 vegobjekter av en type 79 i dette eksempel | https://nvdbapiles-v3.atlas.vegvesen.no/vegobjekter/79?ider=88574849,78771648&inkluder=metadata |
som gir en responser med metadata med paginering.