Utviklerutgave av skrive-apiet tilgjengelig på docker-hub

Vi har nå gleden av å tilby en utviklerutgave av NVDB Skrive-API. Denne er tilgjengelig via docker-hub. Utviklere som ønsker å skrive data til NVDB kan dermed få kjøre en virtuell utgave av  skrive-apiet på sin maskin.

Om NVDB skrive api

Skrive-apiet er et asynkront REST-API som tar imot Endringssett på vårt eget vegobjekt-format. Skrive-apiet er tett knyttet opp mot NVDB og Datakatalogen. For å kunne bruke Skrive-API’et i produksjon, må du:

  • Ha bruker i Statens Vegvesen, med NVDB roller i LDAP
  • Få tildelt datarettigheter i skrive-apiet til de objekttypene, de vegkategoriene og de områdene du ønsker å skrive data for.
  • Ha kjennskap til Datakatalogen: Alle objekter som skal skrives blir strengt validert mot siste utgave av datakatalogen.
  • Ha kjennskap til Vegnettet i NVDB: Skrive-apiet krever at objekter er stedfestet på vegnettet (med angitt veglenkeid og posisjon).

En oversikt over NVDB API’ene, med tilhørende kode-eksempler er tilgjengelig her: https://github.com/nvdb-vegdata/nvdb-utviklerkonferanse-2015 Dokumentasjonen til skrive-apiet pakkes og distribueres sammen med applikasjonen og er inkludert i utviklerutgaven.

Om utviklerutgaven

Denne utviklerutgaven mocker all Statens vegvesen infrastruktur, inkludert NVDB databasen, men lar deg få lov til å utforske kommunikasjonen med API’et og validere dine data. Denne varianten har ingen vegdata og skriver heller ingen data til NVDB. Det er altså bare for å kunne utvikle mot APIet. Den inneholder imidlertid siste versjon av datakatalogen og kan validere innsendte data mot denne.

Docker-utgaven oppdateres når vi oppdaterer skrive-apiet i akseptansetestmiljøet, den vil altså følge neste produksjonskandiat av apiet. Datakatalogen oppdateres fortløpende.

For å få tak i docker-utgaven:

  1. Installér Docker https://docs.docker.com/engine/installation/
  2. Kjør docker run -d -p 8080:8080 –name nvdb-skriveapi nvdbapnevegdata/nvdb-skriveapi
  3. For å stoppe kjør docker stop nvdb-skriveapi

Når docker kjører:

Om alt har gått bra er Skrive-apiet nå tilgjengelig på http://localhost:8080/ på en Linux-maskin. For Windows og Mac kjører docker daemon i en Linux VM og localhost må erstattes med korrekt IP-adresse. For å finne denne åpne et command prompt/terminal og kjør kommando docker-machine ip.

Når man åpner denne siden i nettleseren vises en side der man kan velge innlogging. Dette er ikke knyttet til reelle brukere, men dummybrukere som kun lever i SDKen. Når bruker er valgt vil man bli sendt til /nvdb/apiskriv. Her ligger lenke til dokumentasjonen av APIet, og en testklient som kalles Generator.

Generator-klienten viser eksempler på requester som sendes til APIet, og forventet respons fra APIet.

Logge inn i skrive-apiet programatisk

For å opprette en sesjon programmatisk kan du POSTe ønsket user-id til /login (eks: user-id=toillbaill). Da blir en serversesjon opprettet. For å bruke denne sesjonen må du bruke JSESSIONID-cookien som returneres ved login.

Feilsøk:

Loggene til Skrive-APIet nås ved å utføre:

docker exec -it nvdb-skriveapi bash
cd maven/apache-tomcat-8.0.32/logs