Glossar
Ein Nachschlagewerk für die Fachbegriffe und projektspezifischen Begriffe, die in
autobahn-cli verwendet werden. Die API ist die offene Autobahn-App-API
(verkehr.autobahn.de) der Autobahn GmbH des Bundes, die die Live-Daten hinter der
offiziellen Autobahn-App liefert. Die Fachdomäne sind die deutschen Autobahnen; dieses
Glossar nennt den in CLI und Client verwendeten englischen Begriff, wo sinnvoll neben dem
deutschen Originalbegriff.
API & Betreiber
Autobahn-App-API. Die offene, rein lesende REST-API unter verkehr.autobahn.de
(von der Community dokumentiert unter autobahn.api.bund.dev). Sie stellt aktuelle
Verkehrsdaten für das Netz der Bundesautobahnen bereit. Alle Endpoints, die dieses Tool
nutzt, liegen unter der API-Wurzel /o/autobahn und benötigen weder Authentifizierung
noch API-Schlüssel.
Autobahn GmbH (des Bundes). Das bundeseigene Unternehmen, das die deutschen Bundesautobahnen betreibt und unterhält und diese API veröffentlicht.
API-Wurzel (/o/autobahn). Das gemeinsame Pfadpräfix unterhalb der Basis-URL für
alle Endpoints: die Liste der Autobahnen (/o/autobahn/), die Dienstlisten je Autobahn
(/o/autobahn/{roadId}/services/{service}) und die Detail-Endpoints
(/o/autobahn/details/{service}/{identifier}).
Zentrale Ressourcen
Autobahn (roadId). Eine deutsche Bundesautobahn, identifiziert durch ihre
Bezeichnung wie A1, A2, A99. GET /o/autobahn/ liefert die vollständige Liste der
Autobahnen, die die API kennt (das Array roads). CLI: roads. Die roadId ist das
erforderliche Pfadsegment für jeden list-Befehl eines Dienstes.
Baustellen (roadworks). Laufende oder geplante Bau- und Unterhaltungsarbeiten
entlang einer Autobahn. CLI: roadworks.
Webcam (webcam). Eine Verkehrskamera an einer Autobahn; Einträge enthalten eine
imageurl (das Standbild) und eine linkurl. CLI: webcams.
Lkw-Parkplätze (parking_lorry). Lkw-Parkplätze bzw. Rastplätze entlang einer
Autobahn und Angaben zu ihrer Belegung. CLI: parking.
Verkehrswarnung (warning). Eine Verkehrsmeldung bzw. Verkehrswarnung entlang einer
Autobahn – z. B. Stau, Unfälle, Gefahren. CLI: warnings.
Sperrung (closure). Eine Voll- oder Teilsperrung entlang einer Autobahn.
CLI: closures.
E-Ladestation (electric_charging_station). Ein Ladepunkt für Elektrofahrzeuge
entlang einer Autobahn, mit Metadaten zu Steckern und Betreiber. CLI: charging.
Die sechs Dienst-Ressourcen – Baustellen, Webcams, Parkplätze, Warnungen, Sperrungen, Ladestationen – sind strukturell identisch: Jede unterstützt
list <roadId>undget <identifier>. Intern bedient eine generischeServiceResourcealle sechs.
Kennungen & Aufbau der Anfragen
roadId. Die Bezeichnung der Autobahn als Pfadsegment, z. B. A1. Sie stammt aus
dem Befehl roads. Die Upstream-API selbst liefert einige IDs mit nachgestelltem
Leerzeichen neben ihrem bereinigten Gegenstück (z. B. "A60" und "A60 "). Deshalb
entfernt der Client vor der Verwendung umgebende Leerzeichen, und der Befehl roads
bereinigt die ausgegebene Liste und entfernt die Duplikate.
identifier. Die opake ID eines einzelnen Dienst-Eintrags, die in jedem gelisteten
Eintrag als Feld identifier steht. Diesen Wert übergeben Sie einem
get <identifier>-Befehl (oder resource.get(...)), um die vollständigen Details genau
dieses Eintrags abzurufen. Das Format hängt vom Dienst ab: Baustellen, Warnungen und
Sperrungen nutzen einfache Zeichenketten (2026-006680--vi-fbm.…), Parkplätze IDs wie
DE-SL-000031, Ladestationen eine numerische ID bei Standorten des Deutschlandnetzes
(30388) und eine Base64-ID bei allen anderen
(RUxFQ1RSSUNfQ0hBUkdJTkdfU1RBVElPTl9fMTkyMzE=).
Dienstliste. Das zweistufige Zugriffsmuster der API: list(roadId) liefert das Array
der Einträge eines Dienstes entlang einer Autobahn; get(identifier) ruft dann die
vollständigen Details eines Eintrags über seine Kennung ab.
Listenhülle. Die Antwort einer Dienstliste ist ein JSON-Objekt, das sein Array unter
einem einzigen, nach dem Dienst benannten Schlüssel ablegt –
{ "roadworks": [...] }, { "webcam": [...] }, { "parking_lorry": [...] },
{ "warning": [...] }, { "closure": [...] },
{ "electric_charging_station": [...] }. Der Client packt diesen Schlüssel aus und
liefert das reine Array (ein leeres Array, wenn der Schlüssel fehlt).
Felder der Einträge
Alle gelisteten Einträge teilen eine lose spezifizierte Form (AutobahnServiceItem);
die API befüllt je Diensttyp eine andere Teilmenge der Felder.
identifier. Opake ID des Eintrags (siehe oben).
title / subtitle. Kurze, menschenlesbare Bezeichnungen des Eintrags. Bei den
Lkw-Parkplätzen ist title upstream fehlerhaft (A8 | undefined); der Name des
Parkplatzes steht in subtitle.
description. Ein Array beschreibender Textzeilen.
point. Eine einzelne geografische Position, serialisiert als Zeichenkette. Die
Reihenfolge hängt vom Dienst ab: "lat,long" bei Baustellen, Warnungen und Sperrungen,
"long,lat" bei Ladestationen. Lkw-Parkplätze haben point: null.
coordinate. Ein geografischer Punkt als strukturiertes Objekt. Seine Form hängt vom
Dienst ab: { lat, long } mit JSON-Zahlen bei Baustellen, Warnungen und Sperrungen;
dieselben Schlüssel als Zeichenketten codierte Dezimalzahlen bei Ladestationen; und bei
Lkw-Parkplätzen ein GeoJSON-Point { "type": "Point", "coordinates": [long, lat] } ohne
die Schlüssel lat/long.
geometry. Ein GeoJSON-LineString des betroffenen Abschnitts, bereits in der
Reihenfolge [long, lat], bei Baustellen, Warnungen und Sperrungen.
extent. Eine räumliche Ausdehnung des Eintrags (z. B. der Abschnitt, den eine
Baustelle umfasst).
isBlocked. Ein String-Flag, das angibt, ob der Abschnitt bzw. Eintrag blockiert ist.
future. Boolean – ob sich der Eintrag auf ein künftiges (noch nicht aktives)
Ereignis bezieht, z. B. eine geplante Baustelle.
startTimestamp. Beginn des Ereignisses bzw. Eintrags.
display_type. Ein Typ- bzw. Kategoriehinweis, den die App zur Darstellung des
Eintrags nutzt.
icon, footer, routeRecommendation. Anzeige-Metadaten: ein Icon-Schlüssel,
Fußzeilen und etwaige Zeilen mit Umleitungsempfehlungen.
imageurl / linkurl (Webcams). Die URL des Kamerastandbilds und eine Link-URL.
operator (Ladestationen/Webcams). Die betreibende Organisation des Eintrags.
Detailantwort. Die Antwort eines get auf einen einzelnen Eintrag wird als
unverändertes rohes JsonObject zurückgegeben (RoadworkDetail, WebcamDetail, … sind
allesamt Aliase von JsonObject) statt als teilweise geratener Typ, weil die Form der
Details variiert und nicht vollständig spezifiziert ist.
Verhalten, Fehler & Grenzen
404 bei leerem Body. Der Detail-Endpoint beantwortet eine unbekannte Kennung mit
HTTP 200 und leerem Body statt mit 404. Der Client wertet einen leeren (oder nur aus
Leerraum bestehenden) Body als „nicht gefunden“ und löst einen synthetischen 404
AutobahnApiError aus (CLI-Exit-Code 4), statt eines irreführenden JSON-Parse-Fehlers.
Leere Liste vs. nicht gefunden. Ein list <roadId> ohne passende Einträge ist
kein Fehler: Es liefert [] (Exit 0). Nur ein get <id> ohne passenden Eintrag
oder ein echter 404 gilt als „nicht gefunden“ (Exit 4).
Wiederholbarer Status. 429 (Rate-Limit) und 503 (Dienst nicht verfügbar) sind
die Status, die die API als vorübergehend dokumentiert. Die Engine wiederholt sie
automatisch bis zu maxRetries Mal (Standard 2), berücksichtigt dabei einen
vorhandenen Retry-After-Header und nutzt andernfalls linearen Backoff.
AutobahnApiError.isRetryable bildet das ab.
Retry-After. Ein Antwort-Header, den die Engine sowohl in der Sekundenform
(Retry-After: 120) als auch in der HTTP-Datumsform
(Retry-After: Wed, 21 Oct 2025 07:28:00 GMT) auswertet, um zu bestimmen, wie lange sie
vor einem erneuten Versuch wartet. Die resultierende Wartezeit ist auf höchstens 30 s
begrenzt, damit ein unsinniger oder böswilliger Wert die CLI nicht stundenlang blockiert.
Keine Weiterleitungen. Eine 3xx-Antwort wird als Fehler gemeldet, statt ihr zu
einem anderen Host zu folgen (eine bewusste Sicherheitsentscheidung, da --base-url als
vertrauenswürdige Eingabe gilt).
maxResponseBytes. Eine feste Obergrenze für die Größe des Antwort-Bodys (Standard
100 MiB; 0 deaktiviert sie), die vor Speichererschöpfung durch einen böswilligen oder
fehlerhaften Endpoint schützt.
Exit-Codes. 0 bei Erfolg (inkl. --help/--version); 4 bei „nicht gefunden“
(404 oder ein get ohne Treffer); 1 bei jedem anderen API-, Netzwerk- oder
Parse-Fehler sowie bei Bedienfehlern.
Bibliothek & Interna. Begriffe zum TypeScript-Client und seinen Interna –
AutobahnClient, die Request-Engine, Transport, Retry/Backoff, Fehlertypen, Query-Builder, DI-Seams – stehen jetzt in DEVELOPING.md.