TSOM 스키마 검사기를 사용하여 JSON 페이로드 확인

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 2분
  • 데이터를 임포트하기 전에 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'
    };

    단계

    1. 스키마 유효성 검사기 인스턴스화javascriptCopyEdit
      var TsomSchemaValidator = new sn_tsom_core.TsomSchemaValidator();
      
    2. 부울 유효성 검사 실행
      if (!TsomSchemaValidator.isValidJson(target_json)) {
          gs.error('Invalid JSON: ' + JSON.stringify(target_json));
          return;
      }
      
    3. 상세 확인 확인 실행
      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
    }