P.S. - Software Development

REST-API-Anbindung einer Frachtführerplattform mit Lobster Data

Technische Fallstudie zur strukturierten API-Integration zwischen einem Legacy-TMS und einer externen Carrier-Plattform ohne Eingriff ins Quellsystem.

Lobster DataREST APISystemintegration

Ausgangssituation im Betrieb

Die Ausgangssituation war typisch für gewachsene Logistik-IT: Ein Legacy-TMS lieferte operative Auftragsdaten zuverlässig für den Tagesbetrieb, konnte diese Daten aber nicht im Zielformat einer externen Carrier-Plattform bereitstellen. Sobald neue Aufträge, Statusänderungen oder Tour-Updates übertragen werden sollten, mussten Felder manuell nachgezogen oder korrigiert werden. Das erzeugte unnötige Wartezeiten zwischen Disposition und Ausführung und erhöhte die Fehlerwahrscheinlichkeit in mehreren Prozessschritten.

Zusätzlich verschärfte sich das Problem bei Lastspitzen. Wenn mehrere Auftragswellen kurz nacheinander in den Versand gingen, führte jede semantische Abweichung zu Rückläufern. Die Folge war nicht nur technischer Lärm, sondern operative Reibung: Fachbereiche mussten nacharbeiten, Rückfragen abstimmen und Statusinformationen manuell synchronisieren. Ziel der Umsetzung war deshalb keine kosmetische API-Anbindung, sondern ein belastbares Austauschmodell, das im Tagesbetrieb stabil bleibt.

Technischer Kontext

Der technische Kern lag in einem Lobster-Data-Profil mit HTTP-API-Connector als Transformations- und Kontrollschicht. Lobster Data übernimmt in diesem Szenario nicht nur Feldmapping, sondern die vollständige Orchestrierung zwischen Quellformat und Zielvertrag: Eingangsvalidierung, Strukturaufbau, Regelanwendung, Versandsteuerung und rückführbare Fehlerrückgabe. Das Quellsystem bleibt unverändert, weil die Integrationslogik gezielt außerhalb des Legacy-Kerns aufgebaut wird.

Der HTTP-API-Connector löst dabei ein zentrales Integrationsproblem: Die Zielplattform erwartet streng validiertes JSON mit klarer Feldsemantik, unterschiedlichen Pflichtfeldern je Nachrichtentyp und verschachtelten Referenzen. Statt diese Logik in das Legacy-System einzubauen, wird sie in der Middleware versionierbar und nachvollziehbar gepflegt. Änderungen an Feldregeln oder Zielvorgaben lassen sich dadurch in kleinen, reversiblen Schritten ausrollen, ohne Kernprozesse im TMS zu destabilisieren.

Strukturbau: das Array-Problem

Ein kritischer Teil war der Strukturbau rund um Listenfelder, insbesondere bei Stopps, Positionen oder Referenzen. Viele Quellsysteme serialisieren ein Feld mit einem einzelnen Eintrag als Objekt statt als Array. Für Menschen wirkt das gleichwertig, für strikt validierte APIs ist es ein harter Strukturfehler. Das war im Betrieb relevant, weil genau diese Randfälle unregelmäßig auftreten und dann schwer reproduzierbare Rückläufer verursachen.

Das Muster dahinter ist die Max=1-Semantik: Ein Feld darf fachlich nur einen Wert enthalten, wird technisch aber von der API weiterhin als Liste erwartet. Ohne explizite Normalisierung entsteht inkonsistentes Verhalten zwischen Einzelfall und Mehrfachfall. Die saubere Lösung ist deshalb ein vorgelagerter Normalisierungsschritt im Mapping, der alle betroffenen Felder deterministisch in das erwartete Array-Format überführt, unabhängig von der Quellausprägung.

                {
  "shipmentId": "4711",
  "stops": {
    "stopId": "123",
    "type": "pickup"
  }
}
              
                {
  "shipmentId": "4711",
  "stops": [
    {
      "stopId": "123",
      "type": "pickup"
    }
  ]
}
              

Fehlerklassifikation und Triage

Im produktiven Profil wurde diese Normalisierung mit klarer Validierungslogik gekoppelt: Erst Struktur angleichen, dann Pflichtfelder prüfen, danach versenden. So entstehen keine verdeckten Folgefehler aus halbvaliden Payloads. Parallel wurde dokumentiert, welche Felder rein technisch zu normalisieren sind und welche fachlich zwingend vorhanden sein müssen. Diese Trennung reduziert Diskussionen im Incident-Fall, weil Ursache und Verantwortung schneller zugeordnet werden können.

Für den Betrieb wurde eine dreistufige Fehlerklassifikation etabliert. Transportfehler betreffen Erreichbarkeit, Timeouts oder HTTP-Status außerhalb der erwarteten Erfolgsantwort. Validierungsfehler entstehen vor dem Versand bei verletzten Struktur- oder Pflichtfeldregeln. Prozessfehler betreffen fachliche Rückmeldungen der Zielplattform trotz formal korrekter Übertragung. Jede Klasse hat einen eigenen Reaktionspfad mit unterschiedlicher Priorität und Zuständigkeit.

Diese Trennung ist operativ entscheidend, weil sie Triage-Zeiten deutlich verkürzt. Ein Transportfehler wird anders behandelt als ein semantischer Datenfehler: Im ersten Fall liegt der Fokus auf Verfügbarkeit und Retry-Strategie, im zweiten auf Datensatzkorrektur und Regelnachschärfung. Prozessfehler wiederum erfordern oft eine fachliche Klärung, nicht sofortige technische Eskalation. Durch die saubere Klassifizierung sinken unnötige Eskalationen und die Bearbeitung wird planbarer.

Übertragbarkeit des Musters

Das Muster ist auf viele Integrationsszenarien übertragbar: überall dort, wo ein stabiles Bestandssystem nicht direkt umgebaut werden soll, aber ein modernes API-Ziel einen strikten Datenvertrag fordert. Voraussetzung sind drei Dinge: ein expliziter Mapping-Vertrag, eine konsequente Struktur-Normalisierung und ein überprüfbares Betriebsmodell für Fehlerbehandlung. Fehlt einer dieser Bausteine, verschiebt sich das Problem nur von der Entwicklung in den laufenden Betrieb.

Fazit

Fazit: Die Integration war erfolgreich, weil nicht nur eine Verbindung hergestellt wurde, sondern ein belastbarer Prozess entstanden ist. Das Legacy-TMS bleibt lieferfähig, die Carrier-Plattform erhält konsistente Nutzdaten, und Betriebsteams können Störungen nachvollziehbar klassifizieren statt ad hoc reagieren. Genau diese Kombination aus technischer Sauberkeit und operativer Steuerbarkeit macht eine API-Anbindung im Bestand langfristig wartbar.

Zurück zur Blog-Übersicht