경보 관리 개방형 API 개발자 가이드

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기8분
  • 경보 관리 개방형 API를 사용하여 이벤트 [em_event] 테이블의 데이터를 생성하고 업데이트합니다.

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

    Alarm Management Open API 확장

    Alarm Management Open API 는 스크립트 포함을 편집하여 확장할 수 있습니다.

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

    알람 관리 개방형 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()에 의해 호출됩니다.
    이러한 모든 함수는 기본적으로 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 작업 외에 추가 작업을 생성하려면 경보 관리 개방형 API에 대해 스크립팅된 REST 자원을 추가로 생성합니다 . 새로 스크립팅된 REST 자원 의 논리는 기존 작업과 일치해야 합니다 . TMFAlarmAPIUtil에서 새 작업에 대한 함수를 정의합니다.

    필드 매핑

    레코드를 만들거나 업데이트할 때 알람 관리 오픈 API는 요청 본문 매개변수를 이벤트 레코드 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.

    AlarmAPIProcessorOOB 스크립트 포함에는 PATCH 또는 POST 요청 본문을 이벤트 [em_event] 테이블의 레코드에 매핑하는 다음 기능이 포함되어 있습니다.
    • mapCreateAlarmObjectToEvent()
    • mapClearAlarmObjectToEvent()
    • mapPatchAlarmObjectToEvent()
    또한 이벤트 GlideRecord를 GET, PATCH 또는 POST 요청에 대한 JSON 응답 객체에 매핑하는 다음 함수도 포함되어 있습니다.
    • modifyCreateEventResponse()
    • 수정ClearEventResponse()
    • modifyPatchEventResponse()
    필드 매핑을 사용자 정의하여 추가 이벤트 [em_event] 테이블 필드에 대한 데이터를 추가 및 검색하거나 기본 필드 매핑을 변경할 수있습니다. 매핑 작업을 수행하려면 AlarmAPIProcessor 에서 이름과 매개변수가 같은 함수를 만들어 AlarmAPIProcessorOOB 매핑 함수를 재정의합니다. TMFAlarmAPIUtil 은 이러한 AlarmAPIProcessor 함수를 사용하여 기본 AlarmAPIProcessorOOB 매핑 함수를 대체합니다.
    다음 예제에서 두 개의 AlarmAPIProcessor 함수는 AlarmAPIProcessorOOB 의 기본 함수를 재정의하여 유형 매핑을 변경하고 심각도 필드에 대한 매핑을 추가합니다.
    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'
    });