Über dieses Tool
Schema-Validierung macht aus „die Response sieht richtig aus“ eine wiederholbare Vertragsprüfung: Pflichtfelder, Typen, Formate, Enums und Array-Strukturen. Dieser Validator nutzt Ajv, dieselbe Bibliothek wie viele JavaScript-Testsuites, zusammen mit ajv-formats für Prüfungen von E-Mail, date-time, uuid und uri. Jeder Fehler erscheint mit Instanzpfad (/items/1/qty) und einer verständlichen Meldung, und es werden alle Fehler gemeldet, nicht nur der erste. Haben Sie noch kein Schema, fügen Sie eine bekannt gute Response ein, erzeugen daraus ein Startschema und verschärfen es dann von Hand.
So funktioniert es
- Fügen Sie links das Schema und rechts die JSON-Daten ein oder laden Sie das Beispiel-Bestellschema mit absichtlich fehlerhaften Daten.
- Belassen Sie den Draft auf „Auto“, um dem $schema-Keyword des Schemas zu folgen, oder erzwingen Sie 2020-12 bzw. Draft-07.
- Beheben Sie die aufgeführten Fehler; das Ergebnis aktualisiert sich während der Eingabe.
- Für ein neues Schema fügen Sie eine echte Response als Daten ein und klicken auf „Generate schema from data“ (Schema aus Daten erzeugen).
FAQ zu JSON Schema Validator
Soll ich Draft 2020-12 oder Draft-07 verwenden?
Verwenden Sie, was Ihre übrigen Tools unterstützen. OpenAPI 3.1 orientiert sich an 2020-12, während viele ältere Validatoren und OpenAPI-3.0-Tools näher an Draft-07 sind. Die wichtigsten sichtbaren Unterschiede sind Tupel-Arrays (prefixItems in 2020-12, items als Array in Draft-07) sowie $defs gegenüber definitions.
Wie gut ist das erzeugte Schema?
Es ist ein Ausgangspunkt, abgeleitet aus einem einzigen Beispiel: Typen, verschachtelte Objekte, Strukturen von Array-Elementen, gängige String-Formate und jeder im Beispiel gefundene Key als Pflichtfeld. Welche Felder optional sind, welche Werte Enums sind oder welche numerischen Grenzen gelten, kann es nicht wissen. Prüfen Sie es also, bevor Sie es als Vertrag verwenden.
Warum wird eine ungültige E-Mail akzeptiert?
Das Keyword „format“ wird nur geprüft, wenn ein Validator Formatprüfungen aktiviert. Dieses Tool aktiviert sie über ajv-formats; tut Ihr Test-Framework das nicht, fügen Sie dort ebenfalls das Formats-Plugin hinzu, sonst gehen dieselben Daten durch.