Stedfesting API.
Jeg er i gang med at implementere API for stedfesting - https://apiskriv.vegdata.no/bin%C3%A6re-objekter/api-referanse.
Hvis test-xml på https://apiskriv.vegdata.no/stedfesting/api-referanse valideres mod xsd angivet her https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/stedfest/stedfest.xsd fremkommer følgende fejl:
Cvc-complex-type.2.3: Element 'forankring' Cannot Have Character [children], Because The Type's Content Type Is Element-only., Line '21', Column '18'.
Cvc-complex-type.2.3: Element 'geometri' Cannot Have Character [children], Because The Type's Content Type Is Element-only., Line '33', Column '22'.
Er der ændringer til xsd eller er det testdata der skal tilrettes?
Hei. Jeg prøver å leke meg med API-et. Fant et område med skiltpunkt langs en vei uten skiltplater. På veibilder finnes det heller ingen bilder av potensielle skiltpunkt eller skiltplater. Så her er jeg sikker på at jeg ønsker å slette objektene. Jeg benytter Postman til dette og jeg har klart å autorisere meg selv. Men nå sitter jeg fast. Jeg får oppgitt at jeg har "bad request".
Jeg sender en POST til https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett.
Headers:
X-client = "Postman",
Accept: application/json,
Authorization: Bearer min-kode
Body :
<endringssett>
<datakatalogversjon>2.20</datakatalogversjon>
<ansvarlig>pavski</ansvarlig>
<fjern>
<vegobjekter>
<vegobjekt typeId="90" nvdbId="176330528"><kaskadefjerning>JA</kaskadefjerning></vegobjekt>
<vegobjekt typeId="90" nvdbId="176330490"><kaskadefjerning>JA</kaskadefjerning></vegobjekt>
<vegobjekt typeId="90" nvdbId="176330492"><kaskadefjerning>JA</kaskadefjerning></vegobjekt>
...
</vegobjekter>
</fjern>
</endringssett>
response:
{
"messages": [
"Request body unmarshalling failed at line 1, column 15: cvc-elt.1: Cannot find the declaration of element 'endringssett'."
]
}
Jeg har også prøvd å sende en body med kun <fjern>
, men fikk samme tilbakemelding. Hva gjør jeg feil? :)
Ønsker å få tilgang til test databasen, men klarer ikke å logge inn. Sender en POST til https://nvdbapiskriv.test.atlas.vegvesen.no/rest/v1/oidc/authenticate
Header:
Content-Type: Application/json
X-Client: Postman
{
"username":"mitt-brukernavn",
"password":"mitt-passord"
}
Får tilbake:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tokens xmlns="http://nvdb.vegvesen.no/apiskriv/domain/oidc/v1"/>
Forventet å få (slik som i PROD):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tokens xmlns="http://nvdb.vegvesen.no/apiskriv/domain/oidc/v1">
<idToken>eyJ0eXAiOi...</idToken>
<accessToken>eyJ0eXA...</accessToken>
<refreshToken>eyJ0eXAiO...</refreshToken>
</tokens>
UTFØRT_OG_ETTERBEHANDLET
. På vegkartet er metadata->stedsfestning fortsatt den samme som før. jeg mistenker at dette kan være en feil på API et. Jeg kjørte dette på en annen tunnel/nødstasjoner tidligere og det gikk fint. Authorization: Bearer ey...
X-Client: Postman
Accept: Application/Json
<endringssett xmlns="http://nvdb.vegvesen.no/apiskriv/domain/changeset/v3">
<datakatalogversjon>2.25</datakatalogversjon>
<ansvarlig>pavski</ansvarlig>
<delvisKorriger>
<vegobjekter>
<vegobjekt versjon="1" typeId="212" nvdbId="341371098"><validering><lestFraNvdb>2021-07-21T16:30:00</lestFraNvdb><overlappsautomatikk>JA</overlappsautomatikk><reduserPunkttetthet>JA</reduserPunkttetthet></validering><stedfesting operasjon="oppdater"><punkt veglenkesekvensNvdbId="805604" posisjon="0.15349905"/></stedfesting></vegobjekt>
...
</vegobjekter>
</delvisKorriger>
</endringssett>
[
{
"rel": "self",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe"
},
{
"rel": "start",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe/start"
},
{
"rel": "kanseller",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe/kanseller"
},
{
"rel": "status",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe/status"
},
{
"rel": "fremdrift",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe/fremdrift"
},
{
"rel": "fremdriftOgÅrsak",
"src": "https://nvdbapiskriv.atlas.vegvesen.no/rest/v3/endringssett/f16ad333-f811-4d53-b70c-8dc64df03ebe/fremdriftOg%C3%85rsak"
}
]
Hei! Vi har en fagapplikasjon som skal begynne å skrive til NVDB.
Applikasjonen leser i dag data fra NVDB og skal nå implementere mulighet for bruker å korrigere data tilbake til NVDB. Brukere i dette tilfelle er vegvesen ansatte som er logget inn med SAML.
Vi har fått en tjenestebruker, og kan bruke denne til å gjøre endringer som service_user. Derimot blir det lite korrekt med tanke på rettigheter til brukeren som utfører handlingen i systemet.
Vi kan be brukeren logge på med single sign on slik at vi da kan utføre handlingen på vegne av brukeren. Dette vil da såvidt jeg forstår kreve at vår applikasjon er en gyldig returnUrl fra deres autentiseringssystem for å få SSO til å fungere.
Hva er den beste veien å gå frem med i dette tilfellet? Er det gjort noe tilsvarende fra før mot andre eksterne leverandører?
Stedfesting av et endringsobjekt har 7 kjente props: "sideposisjon", "kjørefelt", "fra", "til", "retning", "veglenkesekvensNvdbId", "veglenkesekvensTempId". Hvis jeg sender inn f.eks:
"stedfesting": {
"linje": [
{
"fra": 0.10538392,
"til": 0.1130935,
"retning": null,
"veglenkesekvensNvdbId": 1395,
"kjørefelt": "1"
}
]
}
Så får jeg likevel "Bad Request. - Cannot deserialize instance of...". Hva er det jeg ikke har forstått?