Skip to main content
CheckTown
Generatoren

JSON-Schema-Generator: Schemas aus Beispielen erstellen

Veröffentlicht 5 Min. Lesezeit
In diesem Artikel

Was ist JSON Schema?

JSON Schema ist ein Vokabular, mit dem du die Struktur und die Validierungsregeln für JSON-Daten beschreiben kannst. Ein Schema, das selbst in JSON geschrieben ist, legt fest, welche Eigenschaften ein Objekt haben darf, welche Typen erlaubt sind, welche Felder erforderlich sind und welche Einschränkungen gelten -- und macht so aus informellen Datenverträgen maschinenlesbare Spezifikationen.

Die am weitesten verbreitete Version ist Draft-07, wobei neuere Drafts (2019-09, 2020-12) Funktionen wie bedingte Schemas und dynamische Referenzen hinzufügen. Ein JSON-Schema-Generator automatisiert den mühsamen Prozess, Schemas von Hand zu schreiben -- er analysiert JSON-Beispieldaten und leitet Typen, Struktur und erforderliche Felder automatisch ab.

So funktioniert die Schema-Generierung

Ein Schema-Generator untersucht dein JSON-Beispiel und erzeugt ein Schema, das dieses validieren würde. Der Prozess umfasst Typinferenz, Strukturanalyse und die Erkennung von Einschränkungen.

  • Typinferenz -- jeder Wert wird geprüft, um seinen JSON-Typ zu bestimmen (String, Number, Integer, Boolean, Null, Array, Object), und das Schema weist das entsprechende type-Schlüsselwort zu
  • Analyse verschachtelter Strukturen -- Objekte werden rekursiv analysiert, um Unter-Schemas für jede Eigenschaft zu generieren, und Arrays werden untersucht, um das items-Schema aus ihren Elementen abzuleiten
  • Erkennung erforderlicher Felder -- alle im Beispiel vorhandenen Eigenschaften werden in der Regel als erforderlich markiert, da der Generator davon ausgeht, dass das Beispiel eine vollständige, gültige Instanz darstellt

Kostenlos testen – keine Registrierung erforderlich

Ein JSON Schema generieren →

Wann du JSON Schema verwenden solltest

JSON Schema ist ein grundlegendes Werkzeug für jedes Projekt, das JSON-Daten sendet oder empfängt.

  • Validierung von API-Anfragen -- validiere eingehende Payloads vor der Verarbeitung gegen ein Schema, weise fehlerhafte Anfragen frühzeitig ab und liefere API-Konsumenten klare Fehlermeldungen
  • Formulargenerierung -- UI-Bibliotheken wie react-jsonschema-form und vue-form-generator können Formulare automatisch aus einem JSON Schema rendern und halten so die Backend-Validierung und die Frontend-Oberfläche synchron
  • Contract-Tests in CI/CD -- überprüfe in Integrationstests, dass API-Antworten dem erwarteten Schema entsprechen, und erkenne so Breaking Changes, bevor sie die Produktion erreichen

Häufig gestellte Fragen

Welche JSON-Schema-Draft-Version sollte ich verwenden?

Draft-07 ist die sicherste Wahl für eine breite Kompatibilität -- die meisten Validatoren, Formulargeneratoren und Codegeneratoren unterstützen es vollständig. Verwende 2020-12, wenn du erweiterte Funktionen wie $dynamicRef, prefixItems oder unevaluatedProperties benötigst. Prüfe stets, ob deine Validator-Bibliothek den von dir gewählten Draft unterstützt.

Wie kombiniere ich mehrere Schemas?

JSON Schema stellt Kompositions-Schlüsselwörter bereit: allOf verlangt, dass alle Unter-Schemas passen, anyOf verlangt, dass mindestens eines passt, und oneOf verlangt, dass genau eines passt. Verwende $ref, um auf wiederverwendbare Schemadefinitionen zu verweisen. Ein User-Schema könnte zum Beispiel allOf nutzen, um ein Basis-PersonSchema mit zusätzlichen Authentifizierungsfeldern zu kombinieren.

Kann ich TypeScript-Typen aus einem JSON Schema generieren?

Ja. Tools wie json-schema-to-typescript und quicktype wandeln JSON-Schemas in TypeScript-Interfaces um und sorgen so dafür, dass deine Frontend-Typen mit deinen Backend-Verträgen synchron bleiben. Das ist besonders in Monorepos nützlich, in denen das Schema als zentrale Quelle der Wahrheit sowohl für die API-Validierung als auch für die clientseitige Typprüfung dient.

Verwandte Tools