Smart Schema Validation
Wie DiffMon API-Diffs in Schema- und Value-Änderungen mit Severity, Fingerprints und Troubleshooting einordnet.
Smart Schema Validation
Smart Schema Validation (SSV) hilft Ihnen, echten API Contract Drift von normalem Value Churn zu trennen.
Planverfügbarkeit: Pro und höher.
Statt nur zu sagen "der Hash hat sich geändert", klassifiziert DiffMon JSON-Änderungen in:
schema_change(Shape-/Type-Drift)value_change(Inhalt geändert, Shape stabil)mixed(beides)
Wann SSV läuft
SSV läuft automatisch, wenn alle folgenden Bedingungen erfüllt sind:
- Der Target Type des Monitors ist
api. - Der Fetch Mode ist
content. - Der Response Body lässt sich als JSON parsen.
- JSON-Select-/Ignore-Regeln werden zuerst angewendet.
Wenn diese Bedingungen nicht erfüllt sind, fällt DiffMon auf legacy Hash Diffing zurück.
Was Nutzer in der App sehen
In Monitor History und Incidents sehen Sie:
- Classification Badge (
schema_change,value_change,mixed,unchanged) - Schema-Hash-Übergang (
fromSchemaHash -> toSchemaHash) - Zähler für Schema-/Value-Änderungen
- am stärksten veränderte JSON Paths
- Severity pro Änderung (
critical,high,medium,info)
Das beschleunigt die Triage:
- priorisieren Sie
schema_changeundmixed - behandeln Sie
value_changeals niedrigeres Risiko, sofern der Bereich nicht business-kritisch ist
Severity-Modell
SSV gibt für jeden Change Record eine Severity aus:
| Kategorie | Operation | Severity |
|---|---|---|
schema | replace | critical |
schema | remove | high |
schema | add | medium |
value | replace | info |
value | add / remove | info |
Webhook-Verhalten
Für diff.detected enthalten Webhook-Payloads:
diff_summarymitclassification,schema_changes,value_changeschanges[]mitpath,category,op,severitydiff_fingerprintfür Dedupe und Grouping
Damit sind stabiles Downstream-Routing und Automation möglich, ohne Diff-Logik neu zu implementieren.
Best Practices für die Konfiguration
- Lassen Sie API-Monitore im
contentMode, wenn Sie Contract Drift erkennen möchten. - Fokussieren Sie das Monitoring mit
selectJsonPathsauf eine stabile Teilmenge, zum Beispiel nurdata.items. - Verwenden Sie
ignoreJsonPathsfür bekannte volatile Felder wie Timestamps, IDs oder rotierende Tokens. - Prüfen Sie die meistveränderten Paths, bevor Sie Ignore-Regeln ausweiten.
Troubleshooting
Häufige Monitor-Fehler und Warnungen:
| Code | Bedeutung | Aktion |
|---|---|---|
SELECT_RULES_INVALID_JSON_PATH | Ungültige Syntax für Select-JSON-Path | Format von selectJsonPaths korrigieren |
IGNORE_RULES_INVALID_JSON_PATH | Ungültige Syntax für Ignore-JSON-Path | Format von ignoreJsonPaths korrigieren |
SELECT_RULES_INVALID_JSON | Response ist kein valides JSON, obwohl Select-Regeln konfiguriert sind | Response-Format des Endpoints prüfen |
IGNORE_RULES_INVALID_JSON | Response ist kein valides JSON, obwohl Ignore-Regeln konfiguriert sind | Response-Format des Endpoints prüfen |
SELECT_OR_IGNORE_RULES_INVALID_JSON | Response ist kein valides JSON, obwohl beide Regelsätze konfiguriert sind | Response-Format des Endpoints prüfen |
UNEXPECTED_MIME | Response-Format passt nicht zum erwarteten Typ und der Body ist nicht als JSON parsebar | Upstream-Response/Content-Type prüfen |
mime_mismatch_json (warning) | Body wurde als JSON geparst, aber Content-Type ist kein JSON | Provider um Korrektur des Content-Type-Headers bitten |
schema_analysis_failed (warning) | Schema-Extraktion fehlgeschlagen; Hash Diff ist weiterhin verfügbar | Payload-Shape und Logs prüfen, dann erneut versuchen |