JSON-Schema-Validierung

Lokale Verarbeitung
app.schema.view

Daten auch über #data={"name":"Ada"} oder #url=... einfügen; nach dem Lesen wird die Adressleiste geleert.

Anleitung

JSON Schema aus einem Beispiel-JSON ableiten. Gut, wenn echte Antworten zuerst da sind und Doku oder Validatoren folgen. Pflichtfelder und Enums von Hand prüfen – das Tool sieht nur «was in diesem Beispiel steckt», nicht «was fachlich Pflicht ist».

Vom Beispiel aus

Objekte, Arrays, Strings, Zahlen werden auf den jeweiligen type abgebildet. Nested Objekte möglichst als properties.

Leere Arrays ohne Elementbeispiel: items-Typ oft ungenau – ein echtes Element ergänzen und neu ableiten.

Als Entwurf

Automatik weiß nicht, ob ein Feld Pflicht ist – required anpassen. Optionale Felder, Enums, format (email, uri) von Hand ergänzen.

Danach mit ajv & Co. in CI laufen lassen – stabiler als mündliche Absprachen.

Lokal erzeugen

Beispieldaten werden nicht hochgeladen. Produktionsbeispiele trotzdem zuerst maskieren.

Die Ausgabe enthält $schema -Deklarationen, damit andere Tools die Version erkennen.

Beispiel

Beispiel-JSON
{
  "id": 1001,
  "name": "Ada",
  "active": true
}
Abgeleitetes Schema (Auszug)
{
  "type": "object",
  "properties": {
    "id": { "type": "number" },
    "name": { "type": "string" },
    "active": { "type": "boolean" }
  }
}
Kann ich damit anderes JSON validieren?

Diese Seite erzeugt Schema aus Beispielen. Das Ergebnis an Backend oder CI (ajv etc.) zur Validierung geben.

Nesting und Arrays?

Es wird möglichst tiefer abgeleitet. Leere Arrays ohne Elementbeispiel: item-Typ oft ungenau.

Schema- oder GraphQL-Seite?

REST / JSON-Doku mit Schema; GraphQL-Dienste mit der Typableitungsseite.

Wird format: email gesetzt?

Schwerpunkt Typableitung. E-Mail-Formate fachlich ins Schema nachtragen.

Empfohlener Ablauf

  1. Eine erfolgreiche Antwort mit möglichst vollständigen Feldern vorbereiten.
  2. Schema erzeugen, type und properties prüfen.
  3. required, enum, additionalProperties von Hand ergänzen.
  4. In Mock / CI gegen spätere Antworten prüfen, zusammen mit Diff versionieren.

Ein Beispiel ergibt keinen vollständigen Vertrag. Mehrere Samples kreuzen, dann das Schema straffen.