Validando cargas JSON usando o Validador de esquema do TSOM
Use a classe do utilitário TsomSchemaValidator para validar cargas úteis JSON em esquemas TSOM antes de importar dados. Isso ajuda a identificar erros antecipadamente, reduzir falhas de ETL e confirmar a qualidade dos dados.
Use este validador para verificar se suas cargas JSON estão em conformidade com o esquema esperado para objetos de telecomunicações, como dispositivos, conexões lógicas e topologias, antes de criar conjuntos de importação. Esta etapa de pré-validação ajuda a evitar erros de incompatibilidade de esquema e melhora a depuração.
Tipos de esquema compatíveis
O validador oferece suporte a vários tipos de esquema para diferentes estruturas de dados de telecomunicações:
- Compostos lógicos - Representam agrupamentos de componentes: Equipamentos, PDUs, prateleiras de ventiladores
- Equipamentos - Equipamento e seus componentes contidos
- Conexões lógicas - Conexões entre interfaces de rede
- Relações de porta - Relacionamentos entre interfaces de rede: Física, lógica, atrasos
- Relações de conexão lógica - Relacionamentos entre conexões lógicas
- Topologia - Topologia de rede
Estrutura de classe
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'
};
Etapas
- Instancie o esquema ValidatorjavascriptCopyEdit
var TsomSchemaValidator = new sn_tsom_core.TsomSchemaValidator(); - Execute uma verificação de validação booliana
if (!TsomSchemaValidator.isValidJson(target_json)) { gs.error('Invalid JSON: ' + JSON.stringify(target_json)); return; } - Execute uma Verificação de validação detalhada
let result = TsomSchemaValidator.checkJsonValidation(target_json); if (!result.valid) { gs.error('Invalid JSON: ' + JSON.stringify(result, null, 2)); return; }
Saída de exemplo
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
}