TSOM スキーマバリデータを使用した JSON ペイロードの検証
データをインポートする前に、TsomSchemaValidator ユーティリティクラスを使用して、TSOM スキーマに対して JSON ペイロードを検証します。これにより、エラーを早期に特定し、ETL の障害を減らし、データ品質を確認できます。
このバリデーターを使用して、インポートセットを作成する前に、JSON ペイロードが電話会社オブジェクト (デバイス、論理接続、トポロジなど) に期待されるスキーマに準拠しているかどうかを確認します。この事前検証ステップは、スキーマ不一致エラーの防止とデバッグの改善に役立ちます。
サポートされているスキーマタイプ
バリデーターは、さまざまな電話会社のデータ構造に対して複数のスキーマタイプをサポートしています。
- 論理コンポジット - コンポーネントのグループを表します:機器、PDU、ファンシェルフ
- デバイス:機器およびそれに含まれるコンポーネント
- 論理接続 - ネットワークインターフェイス間の接続
- ポート関係 - ネットワークインターフェイス間の関係 (物理、論理、遅延)
- 論理接続関係:論理接続間の関係
- トポロジ - ネットワークトポロジ
クラス構造
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'
};
ステップ
- スキーマ検証ツールのインスタンス化javascriptCopyEdit
var TsomSchemaValidator = new sn_tsom_core.TsomSchemaValidator(); - ブール検証チェックを実行
if (!TsomSchemaValidator.isValidJson(target_json)) { gs.error('Invalid JSON: ' + JSON.stringify(target_json)); return; } - 詳細な検証チェックを実行
let result = TsomSchemaValidator.checkJsonValidation(target_json); if (!result.valid) { gs.error('Invalid JSON: ' + JSON.stringify(result, null, 2)); return; }
出力例
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
}