Västtrafik erbjuder flera API:er för att söka och planera kollektivtrafikresor i Västra Götaland som heter Reseplaneraren (version 2). API:erna finns att hitta på Västtrafiks utvecklingsportal, som fungerar som en samlingsplats för deras datatjänster. Att granska öppna data och API-tjänster är ett försök att främja nyttjandet och visa på vanliga problem användare stöter på. Läs mer om bakgrunden till testerna och vad som ligger till grund för de olika kategorierna.
”Reseplaneraren” har ett flertal olika API-ändpunkter som erbjuder sökning av hållplatser (/location), linjers ankomster/avgångar från en hållplats (arrivalBoard & departureBoard), planering av reseväg (/trip), information om alla linjer inom ett geografiskt område (/livemap), geografisk representation av en linjes sträckning (/geometry), samt uppskattning när en linje anländer hållplatser (/journeDetail) den trafikerar.
Snabblänk till artikelsektioner:
Licensregler och opartisk användning
Support och dokumentation
Åtkomlighet och API-strukur
Dataformat och kvalitet
Svarstider och tillförlitlighet
Användarvänlighet
Poängsammanställning
Sammanfattning
Licensregler och opartisk användning
Licensreglerna går att hitta under API-menyn på portalen under konsolsektionen, där det framgår att ”Reseplaneraren” använder Apache License 2.0. Det hade varit en fördel om de licensregler som gäller API:erna hade varit tillgängliga direkt på portalens startsida, förutsatt att alla API:er använder samma licensregler. Det finns heller ingen lathund för enkel förklaring om vad som får göras och inte göras när det gäller API:erna på portalen.
Begreppet ”opartisk användning” handlar om att inga användargrupper har begränsad tillgång till data eller portalen. En av få begränsningar i ”Reseledaren” är att användaren behöver ha en e-postadress, vilket är lättillgängligt för de flesta. Däremot är portalen bara tillgänglig på svenska vilket utgör ett hinder för användare utan kunskaper i svenska.
Support och dokumentation
Under kontaktsidan på portalen återfinns en e-postadress, vilken går att tillgå utan att behöva skapa ett konto. Det står ingenting angivet om supportfrågor, men när vi ställde en fråga om autentisering för våra tester svarade supporten inom 42 minuter på vår förfrågan – vilket får anses vara snabbt med tanke på att supporten inte kostar något.
För att hitta dokumentationen måste användaren navigera till ”Mina prenumerationer” vilket inte känns helt logiskt. Dokumentationen finns enbart på engelska och är endast tillgänglig som PDF. Den uppdaterades senast 2014 och inkluderar inte autentiseringsförfarandet för den aktuella versionen. Däremot finns en autentiseringsguide för aktuell version tillgänglig på startsidan.
Läs vår OAuth 2.0 autentiseringsguide till Västtrafiks API:er
Åtkomlighet och API-struktur
Det finns ingen övergripande beskrivning av datainnehållet på portalens förstasida. Som användare hade man här gärna velat veta vilken dataobjekt och vilka detaljer (attribut) som finns tillgängliga. Användaren måste navigera till detaljer under API-sektionen på portalen för att leta upp information om vilka datatjänster som tillhandahålls, vilket skapar en tröskel för nyfikna användare. Dessutom är portalen i dagsläget bara tillgänglig på svenska, medan delar av dokumentationen bara finns på engelska, vilket inte hellre främjar tillgängligheten.
Strukturen på API:erna är förhållandevis logiska och namnen ger en bra indikation på vad de utför, med undantag av API:et /systeminfo, som förväntas tillhandahålla information om hur systemet fungerar (belastning, upptid, antal aktuella användare, mm.), men som istället erbjuder information om mellan vilka datum den aktuella tidtabellen är giltig. För att portalen ska erhålla poäng för öppenhet krävs dessutom tillgång till data utan upprättande av konto, vilket inte går att göra i nuläget.
Dataformat och kvalitet
”Reseplaneraren” erbjuder både XML och JSON som är två passande format för den typ av hierarkisk data som tillhandahålls. Användaren kan själv specificera det format som han eller hon är mest bekväm med.
Metadatabeskrivningen av XML-formatet länkar till ett inaktuellt schema som förklarar den tidigare versionen av ”Reseplaneraren”. Aktuella scheman finns dock tillgänglig för nuvarande API-versionen på portalen. JSON-formatet saknar helt scheman och det finns inte heller någon definition av vilka datatyper som används, vilket försvårar validering och hantering av data på klientsidan. Det medför att det inte går att automatgenerera objekt för att hantera data, vilket är en funktion som de flesta utvecklingsmiljöer (IDE) har idag, såtillvida scheman finns publicerade på tillgängliga URL:er.
Exaktheten (hur väl verkligheten återges) av den realtidsinformation som tillhandahålls uppskattas vara pålitlig under normala förhållanden. I testet fokuserar vi på den information som är mest tidkritisk, så som avgångar/ankomster och reseplanering. När större störningar sker i kollektivtrafiken tycks informationen om avgångar/ankomster för bussar, spårvagnar, båtar m.m. bli mindre exakt. Det vi erfarit vid några tillfällen är att vissa avgångar och ankomster helt försvinner, som om bussen eller spårvagnen gått upp i rök på väg till hållplatsen.
Svarstider och tillförlitlighet
För att göra en uppskattning av responstiderna automatiserades en serie klientanrop som testades vid ett antal tillfällen. De två API:er som ingick i testet var positioner av fordon (livemap) och reseplanering (trip). Information från dessa API:er bygger på realtidsdata och de responstider vi uppmätte var förhållandevis korta. De mättillfällen som presenteras här var genomförda kl 14:35 och 16:32 den 21 september.
Vid det första tillfället (14:35) var responstiderna korta och tillförlitliga, med standardavvikelse på 76 (livemap) och 156 (trip) millisekunder. Vid det senare tillfället (16:32) var standardavvikelsen för att söka resa (trip) betydligt högre, 541 millisekunder. Loggning av svarstider visar att ett av anropen tog mer än nio sekunder samt att två andra anrop tog närmare tre sekunder att genomföra. De tester vi utförde med testklienten utgör en förhållandevis liten belastning. I verkligheten är anropen från applikationer och klienter mer sporadiska och skapar en högre belastning än den vi utgjorde. Det vi kan utläsa utan att göra ett mer utförligt test, är att responstiderna för sökning av resor kan variera vid olika tidpunkter under dagen, vilket kan inverka på felhantering för eventuella klienter och applikationer som väntar på svar.
Tid | Livemap (m.sek.) | Trip (m.sek.) | |
---|---|---|---|
Genomsnitt | 14:35 | 227 | 689 |
Standardavvikelse | 14:35 | 76 | 156 |
Genomsnitt | 16:32 | 264 | 513 |
Standardavvikelse | 16:32 | 51 | 541 |
Användarvänlighet
Vid flera tillfällen loggade portalen ut användaren utan att användaren varit inaktiv, däremot fungerade API:erna som väntat. Generellt sett är autentiseringstiden kort för både portalen och API:erna (60 minuter), vilket leder till att användaren måste genomföra en ny autentisering eller portalinloggning. Testkonsolen på portalen går att komma åt utan att användaren loggar in, men om användaren försöker använda konsolen resulterar det i felmeddelandet ”no content” med felkod (-1) . I övrigt fungerar testkonsolen bra och är en hjälp för att ta reda på vilka parametrar som finns för de olika API:erna.
Poängsammanställning
Sammanfattning
Efter att ha bekantat oss med Västtrafiks datatjänster upplever vi att API:erna är genomarbetade och fungerar väl tekniskt. Den tekniska mognaden för API:erna återspeglas i de poäng som erhålls inom kategorierna för dataformat och datakvalitet. Svarstider och tillförlitlighet för API:erna är pålitliga och förhållandevis korta, med viss reservation för avvikelsen när det gäller responstider för planering av resor (trip). Supporten för portalen och API:erna fungerar också bra och plockar poäng för snabba svar och att de var behjälpliga med att hitta lösningar på de problem vi stötte på.
Den totala poängen för ”Reseplaneraren” innebär godkänt resultat (över 50 procent), men flera områden har förbättringspotential. Ett sådant område är dokumentation som borde vara tillgänglig utan konto och flera exempel på hur data kan användas. Portalen användarvänlighet kan förbättras genom tydligare menyer och enklare navigering. Metadata är en annan kategori som förhållandevis enkelt kan förbättras genom att länka till aktuella metadatabeskrivningar (schema) och definitioner av datatyper, vilket skulle förenkla datahanteringen på klientsidan. För att inte göra en redan lång artikel längre, får ni gärna kontakta oss om ni vill ta del av ytterligare förbättringsförslag som vi har noterat under testet.
Test av Trafikverkets API för trafikinformation skapat av Clear Byte, licensierad under Creative Commons Erkännande-IckeKommersiell-DelaLika 4.0 Internationell licens.
Icon made by Freepik from www.flaticon.com, licensed by CC 3.0 BY