Sobes.tech
Junior

Was ist ein JSON-Schema?

sobes.tech KI

Antwort von AI

JSON-Schema (JSON Schema) ist ein lexischer Standard auf Basis von JSON zur Beschreibung der Struktur und Einschränkungen von Daten im JSON-Format. Es ermöglicht die Validierung, Beschreibung und Dokumentation von JSON-Daten.

Hauptziele:

  • Validierung: Überprüfung, ob eine JSON-Instanz einer bestimmten Struktur entspricht.
  • Dokumentation: Beschreibung des JSON-Datenformats.
  • Interaktion: Austausch von Metadaten zwischen Systemen.

Wichtige Komponenten des JSON-Schemas:

  • Datentypen: string, number, integer, boolean, object, array, null.
  • Schlüsselwörter für Einschränkungen:
    • type: Erwarteter Datentyp.
    • properties: Beschreibung der Eigenschaften eines Objekts. Jede Eigenschaft hat ihr eigenes Unter-Schema.
    • required: Liste der erforderlichen Eigenschaften.
    • items: Beschreibung der Elemente eines Arrays.
    • minLength/maxLength: Längenbeschränkungen für Strings.
    • minimum/maximum: Beschränkungen für Zahlen.
    • pattern: Regulärer Ausdruck für Strings.
    • enum: Liste der zulässigen Werte.
    • allOf/anyOf/oneOf/not: Logische Kombinationen von Schemas.
  • Schlüsselwörter für Metadaten:
    • title: Kurztitel des Schemas.
    • description: Ausführliche Beschreibung des Schemas.
    • default: Standardwert.

Beispiel für ein JSON-Schema:

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Eindeutige Benutzer-ID"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Beispiel für gültige JSON-Daten gemäß diesem Schema:

{
  "id": 123,
  "username": "testuser",
  "isActive": false
}

Beispiel für ungültige JSON-Daten gemäß diesem Schema:

{
  "id": "abc" // Falscher Typ
  // Fehlendes erforderliches Feld "username"
}

Verwendung des JSON-Schemas in QA Automation:

  • API-Antwortvalidierung: Überprüfung, ob die JSON-Antworten dem Format entsprechen.
  • Anforderungsvalidierung: Überprüfung der eingehenden JSON-Daten vor der Verarbeitung.
  • Testdaten-Generierung: Verwendung des Schemas zur Erstellung gültiger (oder ungültiger) Testbeispiele.
  • Dokumentation: Automatisch gepflegte API-Dokumentation.

Es gibt Bibliotheken für die Arbeit mit JSON-Schemas in verschiedenen Programmiersprachen (z.B. jsonschema für Python, json-schema-validator für Java).