1 av 8 Webbtjänst för åtkomst av det kommunala bolaget Dukatens parkeringsdata
2 av 8 Innehåll 1. Inledning...3 2. Teknik...3 3. Webbtjänstens systemgränssnitt...3 3.1 GetParkeringsytaByID...3 URL...3 Inparametrar...3 Returnerad data...3 Exempelanrop...5 Exempel på JSON-svar...5 3.2 GetParkeringsytaList...5 URL...5 Inparametrar...6 Returnerad data...6 Exempelanrop...6 Exempel på JSON-svar...6 3.3 GetSenasteVersion...7 URL...7 Inparametrar...7 Returnerad data...8 Exempelanrop...8 Exempel på JSON-svar...8 2
3 av 8 1. Inledning Detta dokument beskriver hur man använder Linköping kommuns webbtjänst för åtkomst av det kommunala bolaget Dukatens parkeringsdata. 2. Teknik Webbtjänsten är en rest-tjänst, vilket innebär att den har ett REST-gränssnitt. Information som returneras av webbtjänsten är i JSON-format. 3. Webbtjänstens systemgränssnitt Följande avsnitt beskriver webbtjänstens systemgränssnitt, d.v.s. vilka anrop som kan göras. För respektive anrop listas anropets URL, inparametar, exempelanrop och strukturen på den data som returneras. Datan som returneras är i JSON-format och är i de flesta fall uppbyggd i form av namn/värde-par. Namn/värde-par exkluderas från resultatet (returdatan), om värdet är det samma som defaultvärdet för datatypen. Ett exempel på detta är namn/värde-paret Visible, som är av datatypen Bool och som används för att beskriva om en parkeringsyta är synlig eller inte. Default-värdet för datatypen Bool är false och om värdet på Visible för en specifik parkeringsyta är just false, så innebär det att namn/värde-paret exkluderas från returdatan. Det är med andra ord underförstått att Visible är false. Anledningen till att man exkluderar namn/värde-par från JSON-resultatet är av prestandaskäl. För att kunna utnyttja tjänsten krävs att man registrerar sig och därigenom får en nyckel. Nyckeln skall sedan användas som första parameter i anropen. Registrering görs på http://opendata.linkoping.se/, välj tjänst Parkering. 3.1 GetParkeringsytaByID Hämtar information för en specifik parkeringsyta. URL http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getparkeringsytabyid/nyckel/obje ktid Inparametrar Parameter Typ Förklaring Obligatoriskt Exempel Nyckel Sträng Nyckel som erhålls vid registrering. Ja Abc123 objektid Sträng ID för den parkeringsyta som informations ska hämtas om. Ja 29_1 Returnerad data Datan som returneras är ett JSON-objekt med information om parkeringsytan. Tabellen nedan beskriver betydelsen av respektive namn/värde-par. 3
4 av 8 Namn Typ Förklaring Exempel Id Sträng Parkeringsytans ID 29_1 Name Sträng Namnet på parkeringsytan Detektiven Latitude Flyttal Latitud-position för parkeringsytan 58.4086 Longitude Flyttal Longitud-position för 15.6276 parkeringsytan ParkingSpaces Heltal Antal parkeringsplatser 352 ParkingSpacesAvailable Heltal Antal lediga parkeringsplatser 115 TicketMachines Heltal Antal parkeringsautomater 3 PaymentTypes Lista Betalningstyper: mynt, visa, mobil [1,2,3,4,5,6,7,8,100] m.m. 1 = Mynt 2 = Visa 3 = MasterCard 4 = American Express 5 = OKQ8 6 = Statoil 7 = Shell 8 = Norsk Hydro 10 = Preem 11 = Fordonsgas 12 = St1 13 = Volvokort 100 = TeleP 101 = EasyPark 102 = Mobil ChargeDescription Sträng Taxabeskrivning 00-24 alla dagar. 12 kr\/tim 08-22 därefter 1kr\/tim 22-08. Max Availability Heltal Tillgänglighetsgrad av parkeringsplatser för parkeringsytan. 1 = Uppgift om lediga platser saknas 2 = Lediga platser finns 3 = Få antal lediga platser 4 = Alla platser är upptagna ParkingTypes Lista Parkeringsplatstyper 1 = Avgiftplats 2 = Förhyrd 3 = El 4 = Handikapp 5 = MC 6 = Buss 7 = Övrig 80 kr\/dygn. 1 [1] 4
5 av 8 ParkingAreaTypes Lista Typ av parkeringsområde 1 = Gata (avgift) 2 = Yta (mark eller p-hus) 3 = Tidsbegränsad (fri parkering) Visible Bool Om parkeringsytan ska vara synlig eller inte. [2] true Exempelanrop Hämta information om parkeringsytan med id 29_1: http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getparkeringsytabyid/abc123/29_1 Exempel på JSON-svar "Id": "29_1", "Name": "Detektiven", "Latitude": 58.4086, "Longitude": 15.6276, "ParkingSpaces": 352, "ParkingSpacesAvailable": 175, "TicketMachines": 3, "PaymentTypes": [ 1, 2, 3, 4, 5, 6, 7, 8, 100, 101, 102 "ChargeDescription": "00-24 alla dagar. 12 kr\/tim 08-22 därefter 1kr\/tim 22-08. Max 80 kr\/dygn. 30d\/800kr för Akilles&Druvan. 850kr för Baggen&Detektiven", "Availability": 1, "ParkingTypes": [ 1 "ParkingAreaTypes": [ 2 "Visible": true 5
6 av 8 3.2 GetParkeringsytaList Hämtar information om nya och uppdaterade parkeringsytor baserat på angiven tidsstämpel. Om ingen tidsstämpel anges, så hämtas alla parkeringsytor. URL http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getparkeringsytalist/nyckel/times tamp Inparametrar Parameter Typ Förklaring Obligatoriskt Exempel Nyckel Sträng Nyckel som erhålls vid registrering. Ja Abc123 timestamp Flyttal UNIX-tidsstämpel för att hämta nya/förändrade parkeringsytor sedan en given tidpunkt. Om ingen tiddstämpel anges, alternativt en tidsstämpel med värdet 0, så hämtas allt. Nej 1356994800,0 Returnerad data Resultatet av anropet är ett JSON-objekt med två listor: ParkingAreaNewList och ParkeringAreaUpdateList. Innehållet i dessa listor är noll till många JSON-objekt med parkeringsytor och strukturen på dessa är densamma som för anropet GetParkeringsytaById. Namn Typ Förklaring Exempel ParkingAreaNewList Lista Innehåller en lista med nya parkeringsytor. "ParkingAreaNewList": [ Noll till många parkeringsytor ] ParkingAreaUpdateList Lista Innehåller en lista med uppdaterade parkeringsytor. "ParkingAreaUpdateList": [ Noll till många parkeringsytor ] Exempelanrop Hämta alla parkeringsytor: http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getparkeringsytalist/abc123/0 Hämta nya eller uppdaterade parkeringsytor sedan 2013-01-01: http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getparkeringsytalist/abc123/13569 94800,0 6
7 av 8 Exempel på JSON-svar "ParkingAreaNewList": [ "Id": "29_1", "Name": "Detektiven", "Latitude": 58.4086, "Longitude": 15.6276, "ParkingSpaces": 352, "TicketMachines": 3, "PaymentTypes": [ 1, 2, 3 "ChargeDescription": "00-24 alla dagar. 12 kr\/tim 08-22 därefter 1kr\/tim 22-08. Max 80 kr\/dygn. 30d\/800kr för Akilles&Druvan. 850kr för Baggen&Detektiven", "ParkingTypes": [ 1 "ParkingAreaTypes": [ 2 "Visible": true, "Id": "29_4", "Name": "Detektiven", "Latitude": 58.4086, "Longitude": 15.6276, "ParkingSpaces": 2, "TicketMachines": 3, "PaymentTypes": [ 1, 2, 3 "ChargeDescription": "00-24 alla dagar. 12 kr\/tim 08-22 därefter 1kr\/tim 22-08. Max 80 kr\/dygn. 30d\/800kr för Akilles&Druvan. 850kr för Baggen&Detektiven", "ParkingTypes": [ 4 "ParkingAreaTypes": [ 2 "Visible": true "ParkingAreaUpdateList": [ ] 7
8 av 8 3.3 GetSenasteVersion Webbtjänsten kan finnas i flera versioner. Följande anrop gör det möjligt att ta reda på versionsnumret på den senaste versionen av webbtjänstens systemgränssnitt. URL http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getsenasteversion Inparametrar Inga Returnerad data Resultatet av anropet är ett JSON-värde (helttal) och värdet på detta heltal är alltså versionsnumret på den senaste versionen av webbtjänstens systemgränsnitt. Namn Typ Förklaring Exempel Heltal Versionsnumret på senaste version av webbtjänstens system 1 gränssnitt Exempelanrop http://parkering.linkoping.se/parkeringsdata/parkeringsdatav1.svc/getsenasteversion Exempel på JSON-svar 1 8