Svaret kan fås som XML eller JSON beroende på vilket suffix som används i URL:en i anropet.
API
Svarets uppbyggnad
I URLen definieras vilken version som ska användas och ändelsen (xml eller json) anger format på det returnerade svaret.
http://api.trafikinfo.trafikverket.se/v[version]/data.[format]
Tillgängliga URLer:
https://datacache-test.trafikverket.se/v2/data.xml
https://datacache-test.trafikverket.se/v2/data.json
Svaret har följande struktur.
Svaret omsluts av <RESPONSE/>
vilken innehåller en eller flera <RESULT/>
(ett för varje <QUERY/>
som bifogades frågan). RESULT-elementet innehåller sedan inget, ett eller flera element som motsvarar ett dataobjekt. Namnet på elementen är samma som objektets datatyp.
<RESPONSE> <RESULT> <SomeObjectType> <Id>123<Id> <Name>Adam<Name> </SomeObjectType> <SomeObjectType> <Id>345<Id> <Name>Bertil<Name> </SomeObjectType> </RESULT> </RESPONSE>Exempel JSON:
{ "RESPONSE":{ "RESULT":[ { "SomeObjectType":[ { "Id":"123", "Name":"Adam" }, { "Id":"456", "Name":"Bertil" } ] } ] } }
Datafält som inte har något värde returneras ej. Datafälten kan returneras i olika ordning.
Notera att alla datum- och tidsangivelser är angivna i svensk lokal tid utan indikering av tidzon om inget annat anges.
<AdvertisedTimeAtLocation>2014-02-19T11:22:00</AdvertisedTimeAtLocation>Fältet ModifiedTime är ett fält som alltid är i UTC vilket också definieras i angivelsen (den slutar på 'Z'). Att fältet är i UTC är för att undvika problem vid synkronisering av förändrat data vid övergång mellan sommar- och vintertid.
<ModifiedTime>2014-02-20T09:45:17.874Z</ModifiedTime>
Information
Vid sidan av returnerat data kan även övrig information från systemet returneras i ett INFO-element.
XML:
<RESPONSE> <RESULT> <INFO> <LASTMODIFIED datetime="2014-01-22T09:57:56.07Z"></LASTMODIFIED> </INFO> </RESULT> </RESPONSE>JSON:
{ "RESPONSE":{ "RESULT":[ { "INFO": { "LASTMODIFIED": { "@datetime": "2014-01-22T09:57:56.07Z" } } } ] } }
Felmeddelanden
Om något med anropet går fel så returneras någon av följande HTTP statuskoder:
206 | Partial Content - svaret är för stort. Maximalt tillåten datamängd kommer at returneras följt av ERROR som meddelar att svaret inte är komplett. |
---|---|
401 | Unauthorized - misslyckad autentisering. |
500 | Internal Server Error - internt serverfel. |
501 | Not Implemented - servern stödjer inte en funktion som efterfrågades av klienten. |
Svaret som returneras vid fel innehåller ett ERROR-element som beskriver felet.
Exempelsvar då frågan saknat LOGIN-element och statuskod 401 har returnerats.
XML:
<RESPONSE> <RESULT> <ERROR source="securitymanager">Missing the LOGIN element</ERROR> </RESULT> </RESPONSE>JSON:
{ "RESPONSE":{ "RESULT":[ { "ERROR":{ "SOURCE":"securitymanager", "MESSAGE":"Missing the LOGIN element" } } ] } }