알람 관리 Open API 개발자 가이드

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기8분
  • 경보 관리 Open API를 사용하여 이벤트 [em_event] 테이블에 데이터를 생성하고 업데이트합니다.

    이 개발자 가이드에서는 다양한 사용자 지정을 위해 확장 경보 관리 개방형 API 하는 방법에 대한 정보를 제공합니다.

    Alarm Management Open API 확장

    경보 관리 Open API 는 스크립트 포함을 편집하여 확장할 수 있습니다.

    이러한 스크립트 포함은 변경의 결과를 이해한 경우에만 편집해야 합니다.
    • TMFAlarmAPIConstants: 상수 및 필수 매개 변수 정보를 포함합니다.
    • TMFAlarmAPIUtil: API 요청을 처리하는 함수를 포함합니다.
    • AlarmAPIProcessorOOB:TMFAlarmAPIUtil의 함수를 지원하는 도우미 함수를 포함합니다.
    • AlarmAPIProcessor: 빈 스크립트 포함 파일입니다. 이 파일을 사용하여 AlarmAPIProcessorOOB에서 재정의할 함수를 정의합니다.

    Alarm Management Open API를 확장하여 다음과 같이 사용자 지정할 수 있습니다.

    필수 매개변수

    경보 관리 API는 JSON 스키마를 사용하여 필요한 매개 변수 정보를 저장합니다. 이러한 JSON 스키마는 TMFAlarmAPIConstants 스크립트 포함에 정의되어 있습니다. 이러한 스키마는 요청 페이로드가 유효한지 여부를 확인하는 데 사용됩니다 . 이러한 스키마는 스크립트 포함에서 직접 참조되지 않으며 AlarmAPIProcessorOOB 스크립트 포함의 다음 메서드에 의해 반환됩니다.
    • getCreateEventSchema: 이벤트를 만들기 위한 유효성 검사 스키마를 반환합니다.
    • getClearEventSchema: 이벤트 경보를 지우기 위한 유효성 검사 스키마를 반환합니다.
    • getPatchEventSchema: 이벤트 패치를 위한 유효성 검사 스키마를 반환합니다.
    기존 스키마를 재정의하려면 AlarmAPIProcessor 스크립트 포함에서 새 스키마를 정의하고 AlarmAPIProcessorOOB 스크립트 포함 메서드를 재정의합니다.
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
    	// Define getCreateEventSchema here to override OOTB method in AlarmAPIProcessorOOB
    	getCreateEventSchema: function() {
    		return JSON.parse(AlarmAPIProcessor.CUSTOMIZED_SCHEMA);
    	},
        type: 'AlarmAPIProcessor'
    });
    
    // Define a new schema
    AlarmAPIProcessor.CUSTOMIZED_SCHEMA = "{\"title\":\"CreateAlarm\",\"type\":\"object\",
    \"properties\":{\"externalAlarmId\":{\"type\":\"string\"},\"alarmType\":{\"type\":\"string\"},
    \"perceivedSeverity\":{\"type\":\"string\"},\"probableCause\":{\"type\":\"string\"},
    \"alarmedObject\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"},
    \"href\":{\"type\":\"string\"}},\"required\":[\"id\"]},\"sourceSystemId\":{\"type\":\"string\"}},
    \"required\":[\"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",
    \"alarmedObject\",\"sourceSystemId\"]}";

    요청 본문 확인

    요청 본문에 대한 추가 유효성 검사를 수행하려면 AlarmAPIProcessorOOB 스크립트 포함 에서 다음 함수를 재정의합니다. 이러한 함수는 TMFAlarmAPIUtil 스크립트 포함의 지정된 함수에 의해 호출됩니다.
    • verifyCreateEventPayload() - processCreateEvent()에 의해 호출됩니다.
    • verifyClearEventPayload() - processClearEvent()에 의해 호출됩니다.
    • verifyPatchEventPayload() - processPatchEvent()에 의해 호출됩니다.
    이러한 모든 함수는 defalut에 의해 true 를 반환합니다. 도우미 함수가 false 를 반환하면 API 작업이 중지됩니다.
    사용자 지정 유효성 검사를 적용하려면 AlarmAPIProcessorOOB 도우미 함수를 AlarmAPIProcessor에서 동일한 이름의 함수 이름과 매개 변수로 재정의합니다. 새 AlarmAPIProcessor 함수는 기본 AlarmAPIProcessorOOB 도우미 함수를 대체하기 위해 TMFAlarmAPIUtil에 의해 호출됩니다.
    이 예제에서 사용자 지정 AlarmAPIProcessor 스크립트 포함의 함수는 AlarmAPIProcessorOOB의 기본 함수를 재정의하여 이름 속성에 대한 유효성 검사를 수행합니다.
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        verifyCreateEventPayload: function(eventPayload, apiResponseProcessor){
            // Returning false terminates the POST request
            // Make sure to assign error message and reason
            if (eventPayload.type != "unique") {
                apiResponseProcessor.setMessage("Failed");
                apiResponseProcessor.setReason("No reason needed");
                return false;
            }
        },
    	
        type: 'AlarmAPIProcessor'
    });

    추가 REST 운영

    기존 GET, PATCH 및 POST 조작 이외의 추가 조작을 작성하려면 경보 관리 Open API에 대해 스크립트된 REST 자원을 추가로 작성 하십시오. 스크립트된 새 REST 자원 의 논리는 기존 작업과 일치해야 합니다. TMFAlarmAPIUtil에서 새 작업에 대한 함수를 정의합니다.

    필드 매핑

    기록을 생성하거나 업데이트할 때 경보 관리 Open API는 요청 본문 매개변수를 이벤트 기록 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.

    AlarmAPIProcessorOOB 스크립트 포함에는 PATCH 또는 POST 요청 본문을 이벤트 [em_event] 테이블의 레코드에 매핑하는 다음 함수가 포함되어 있습니다.
    • mapCreateAlarmObjectToEvent()
    • mapClearAlarmObjectToEvent()
    • mapPatchAlarmObjectToEvent()
    또한 이벤트 GlideRecord를 GET, PATCH 또는 POST 요청에 대한 JSON 응답 객체에 매핑하는 다음 함수도 포함되어 있습니다.
    • modifyCreateEventResponse()를 호출합니다.
    • modifyClearEventResponse()를 호출합니다.
    • modifyPatchEventResponse()를 호출합니다.
    필드 매핑을 확인하여추가 이벤트 [em_event] 테이블 필드에 대한 데이터를 추가 및 검색하거나 기본 필드 매핑을 변경할 수 있습니다. 매핑 작업을 수행하려면 AlarmAPIProcessor 에서 동일한 이름과 매개 변수를 가진 함수를 만들어 AlarmAPIProcessorOOB 매핑 함수를 재정의합니다. TMFAlarmAPIUtil 은 이러한 AlarmAPIProcessor 함수를 사용하여 기본 AlarmAPIProcessorOOB 매핑 함수를 대체합니다.
    다음 예제에서는 두 개의 AlarmAPIProcessor 함수가 AlarmAPIProcessorOOB 의 기본 함수를 재정의하여 Type field 매핑을 변경하고 Severity 필드에 대한 매핑을 추가합니다.
    var AlarmAPIProcessor = Class.create();
    AlarmAPIProcessor.prototype = Object.extendsObject(AlarmAPIProcessorOOB, {
    	// Define overriding functions here
    	
        // Function name and parameters must be identical to the function it overrides
        mapCreateAlarmObjectToEvent: function(eventGr, eventObject){
            // Override default mapping for the severity field
            eventGr.severity = "High";
        },
    
        modifyCreateEventResponse: function(eventGr, eventObject){
            // Override default mapping for the type field
            eventGr.type = "Customized Event"; 
        },
    	
        type: 'AlarmAPIProcessor'
    });