Was ein JSON-Schema gegen die häufigsten Bugs an der Frontend-Backend-Naht wirklich bringt
Vor einigen Jahren saß ich an einem Bug, der mich einen halben Tag beschäftigt hat. Das Frontend zeigte einen Wert nicht an, das Backend lieferte ihn aber. Vermeintlich. Im Browser-Devtools sah ich das Feld, im Code nicht. Ich hatte bei der Migration einen Tippfehler gemacht: das Backend lieferte customerId, das Frontend erwartete customer_id.
So banal das klingt, dieser Fehler kommt in jedem Projekt mit einer fragmentierten Schnittstelle vor. Mehrfach.
Warum dieser Bug normal ist
Frontend und Backend sind in den meisten Teams getrennt. Die Datenmodelle werden auf beiden Seiten definiert, oft in verschiedenen Sprachen, und beide Seiten müssen sich aufeinander verlassen, dass die Felder passen. Wenn sich auf einer Seite etwas ändert, ist die andere stumm. Sie merkt es erst zur Laufzeit, im Browser, beim Kunden.
JSON-Schemas oder OpenAPI-Definitionen lösen dieses Problem nicht durch Magie, sondern durch Disziplin: Es gibt eine einzige Quelle der Wahrheit für die Schnittstelle, und beide Seiten generieren ihre Modelle daraus.
Was das praktisch verändert
Wenn das Schema die Wahrheit ist, fällt der Tippfehler beim Build auf, nicht beim Kunden. Das Frontend wird gegen einen automatisch generierten Client gebaut, das Backend gegen automatisch generierte Validierungen. Bricht etwas auseinander, bricht der Build.
Der Effekt ist nicht spektakulär, aber er ist konsistent. Klassen von Bugs verschwinden vollständig: Tippfehler in Feldnamen, Typ-Mismatches, fehlende Felder im Response. Das ist nicht jeder Bug, aber es sind die nervigsten und am häufigsten produktionsrelevanten.
Was es nicht löst
Ein Schema bringt nichts gegen Logik-Fehler. Wenn das Backend ein Datum als ISO-String liefert, das Frontend aber ein Datum mit Zeitzone erwartet, sind beide Seiten formal korrekt, das Verhalten aber falsch. Auch Sicherheitsprobleme, Berechtigungen oder Performance-Engpässe bleiben unverändert.
Ein Vertrag schützt vor Missverständnissen, nicht vor schlechtem Design.
Fazit
JSON-Schemas oder OpenAPI sind keine teure Investition, sondern eine Disziplin-Frage. Wer die Naht zwischen Frontend und Backend ernst nimmt, fängt mit einem Vertrag an. Wer Sparring sucht, ob das im eigenen Projekt sinnvoll ist, kann mich ansprechen.