KV55

Koppelvlak 55 (KV55) implementeert het dynamisch opvragen van reistijden bij een halte. Om van deze API gebruik te maken is een lijst met halteidentificaties nodig zodat je een positie of naam kan relateren aan een identificatie. Binnen KV55 wordt dit een TimingPointCode genoemd. TimingPointCodes kun je uit onze API halen of in je applicatie stoppen, bestanden in verschillende formaten zijn beschikbaar via een mirror.

De huidige implementatie is rudimentair, wij zorgen ervoor dat je een synchrone REST interface hebt, en je krijgt binnen wat wij ontvangen. Requests worden op 1 minuut gecached, zowel op basis van de Expire header als in onze serverside cache.

Op korte termijn zal er een full text search functionaliteit door ons worden aangeboden. Hierbij wordt op basis van de haltenaam automatisch een TImingPointCode aangevraagd. Tevens staan op korte termijn planning uitvoer naar JSON en iRail, ook zullen dan alle gegevens historisch zijn te benadenen in onze database en worden actuele gegevens in PubSub gestopt om clients op te kunnen abonneren.

Wat is het resultaat?

Een XML document in de vorm van deze XSD wordt verstuurd. De API is beschikbaar via een standaard url. http://cache.govi.openov.nl/kv55/57330430. Dit antwoord bevat een of meerdere Trip-tags. De belangrijkste tags binnen een Trip zijn:

  • LinePlanningNumber
  • DestinationName
  • TargetDepartureTime
  • ExpectedDepartureTime

Met deze informatie kan aan gebruikers gemeld worden welke bussen worden verwacht en ze informeren over geplande vertrektijden. (En misschien nog wel belangrijker: de daadwerkelijke vertrektijd van een bus, tram of metro.)

Mogelijke fouten

Het systeem kan de volgende fouten terug geven:

  • 404: Not Found
    de TimingPointCode in de aanvraag wordt niet gevonden in de backend. Controleer in het bestand of deze TimingPointCode daadwerkelijk bestaat.
  • 504: Gateway Timeout
    we konden niet op tijd een antwoord krijgen van af de backend, dus ook geen synchroon antwoord geven. Dit betekent meestal dat er geen data beschikbaar is, omdat de bus wel rijdt maar niet op dit moment.

Tips bij implementatie

TimingPointCodes lijken integers, helaas zijn ze dat niet. Voorloop nullen zijn dus van cruciaal belang om de correcte haltes op te kunnen vragen. Heb je verdere vragen dan kun je op onze Google Group terecht. Uiteraard staan we ook altijd open voor nieuwe ideeën, hulp bij implementatie en suggesties!