RIS-API Baustein RIS::Stations

Zum Inhalt springen

Artikel: RIS-API Baustein RIS::Stations

Details zur OpenAPI, zur Visualisierung der Spezifikation und zur automatisierten Code-Generierung von API-Clients sind im Bereich OpenAPI Technologie beschrieben.

Stammdaten via Batch-Endpunkt abrufen

Für Abnehmer, die sich vor allem für die konsolidierten Stammdaten interessieren, stellt RIS::Stations einen Batch-Endpunkt für Massenabfragen bereit. Über diesen können Stammdaten zu Bahnhöfen, Haltestellen und Gleisen

  • initial abgerufen und z.B. zur weiteren Verwendung gespeichert werden
  • kontinuierlich und inkrementell aktualisiert werden

Initialer Abruf der Stammdaten

Stammdaten können initial via /batch/versions abgerufen werden. Am Beispiel curl wie nachfolgend beschrieben.

Abruf der ersten 100 Haltestellen:

curl --request GET \
    --header 'DB-Api-Key: <SECRET>' --header 'DB-Client-Id: <SECRET>'
    --url 'https://apis.deutschebahn.com/db/apis/ris-stations/v1/batch/versions?limit=100'

Extraktion des After-Tokens (after) aus der Antwort:

{
  "before": "100108-2018-08-13",
  "after": "100107-2019-05-24",
  "total": "283540",
  "results": [
    {
      "evaNumber": "100907",
      "stopPlaces": [
        {
          "evaNumber": "100907",
          [...]
        }
      ]
    }
  ]
}​​​​​​​

Abruf der nächsten 100 Haltestellen mit extrahierten Token:

curl --request GET \
    --header 'DB-Api-Key: <SECRET>' --header 'DB-Client-Id: <SECRET>'
    --url 'https://apis.deutschebahn.com/db/apis/ris-stations/v1/batch/versions
        ?limit=100&after=100107-2019-05-24'

So lange wiederholen bis es keinen After-Token mehr gibt.

Achtung: Über diesen Endpunkt werden auch mögliche zukünftige Versionen von Haltestellen, z.B. im Falle einer Namensänderung zum Fahrplanwechsel, zurückgegeben. Dies kann über den Parameter onlyValid geändert werden.

Inkrementelle Aktualisierung

Um die abgerufenen Stammdaten aktuell zu halten, kann /batch/versions mit dem Datum des letzten Abrufs (lastChanged) aufgerufen werden. Damit werden nur jene Haltestellen, Bahnhöfe und Gleise zurück geliefert, welche sich seit diesem Datum geändert haben. So können die Daten z.B. täglich aktualisiert werden.

Am Beispiel curl wie folgt:

curl --request GET \
    --header 'DB-Api-Key: <SECRET>' --header 'DB-Client-Id: <SECRET>'
     --url 'https://apis.deutschebahn.com/db/apis/ris-stations/v1/batch/versions?limit=100&lastChanged=2023-09-25'


{
  "after": "208019-2022-10-24",
  "total": 2094,
  "results": [
    {
      "evaNumber": "100108",
      "stopPlaces": [
        {
          "evaNumber": "100108",
          [...]
        }
      ]
    }
  ]
}

Kontakt

Bei Fragen oder Feedback zu den Bausteinen der RIS-API: ris-api@deutschebahn.com