Validieren von JSON-Nutzlasten mit TSOM-Schemaprüfung
Verwenden Sie die Dienstprogrammklasse TsomSchemaValidator, um JSON-Nutzlasten anhand von TSOM-Schemas zu validieren, bevor Sie Daten importieren. Dies hilft, Fehler frühzeitig zu identifizieren, ETL-Fehler zu reduzieren und die Datenqualität zu bestätigen.
Verwenden Sie diese Validierung, um zu überprüfen, ob Ihre JSON-Nutzlasten dem erwarteten Schema für Telekommunikationsobjekte wie Geräte, logische Verbindungen und Topologien entsprechen, bevor Sie Importsätze erstellen. Dieser Vorvalidierungsschritt hilft, Fehler bei der Schemabeinstimmung zu verhindern und das Debugging zu verbessern.
Unterstützte Schematypen
Die Validierung unterstützt mehrere Schematypen für verschiedene Telekommunikationsdatenstrukturen:
- Logische Zusammensetzungen: Stellt Gruppierungen von Komponenten dar: Geräte, PDUs, Lüfterregale
- Geräte: Geräte und ihre enthaltenen Komponenten
- Logische Verbindungen: Verbindungen zwischen Netzwerkschnittstellen
- Portbeziehungen: Beziehungen zwischen Netzwerkschnittstellen: Physisch, logisch, Verzögerungen
- Logische Verbindungsbeziehungen: Beziehungen zwischen logischen Verbindungen
- Topologien: Netzwerktopologie
Klassenstruktur
let TsomSchemaValidator = Class.create();
TsomSchemaValidator.prototype = {
initialize: function() {
this.schemas = new TsomGenericSchema();
},
isValidJson: function(payload) {
// Validation logic that determines if the JSON structure is valid
// Returns boolean (true/false)
},
checkJsonValidation: function(payload) {
// Validation logic that determines if the JSON structure is valid
// Returns a JSON object containing errors (if exist)
},
type: 'TsomSchemaValidator'
};
Schritte
- Instanziieren Sie das Schema ValidatorjavascriptCopyEdit
var TsomSchemaValidator = new sn_tsom_core.TsomSchemaValidator(); - Führen Sie eine boolesche Validierungsprüfung aus
if (!TsomSchemaValidator.isValidJson(target_json)) { gs.error('Invalid JSON: ' + JSON.stringify(target_json)); return; } - Führen Sie eine detaillierte Validierungsprüfung aus
let result = TsomSchemaValidator.checkJsonValidation(target_json); if (!result.valid) { gs.error('Invalid JSON: ' + JSON.stringify(result, null, 2)); return; }
Beispielausgabe
Example Output
{
"schemaName": "devices",
"errors": [
{
"message": "Missing required property: model_name",
"params": { "key": "model_name" },
"code": 302,
"dataPath": "/devices/0/ports/0",
"schemaPath": "/properties/devices/items/properties/ports/items/required/4"
}
],
"valid": false
}