경보 관리 Open API 개발자 가이드
경보 관리 Open API를 사용하여 이벤트 [em_event] 테이블에서 데이터를 생성하고 업데이트합니다.
이 개발자 가이드에서는 다양한 사용자 지정을 위해 확장 경보 관리 Open API 하는 방법에 대한 정보를 제공합니다.
알람 관리 Open API 확장
Alarm Management Open API 는 스크립트 포함을 편집하여 확장할 수 있습니다.
이러한 스크립트 포함은 변경의 결과를 이해해야만 편집해야 합니다.
TMFAlarmAPIConstants: 상수 및 필수 매개 변수 정보를 포함합니다.TMFAlarmAPIUtil: API 요청을 처리하는 함수를 포함합니다.AlarmAPIProcessorOOB: TMFAlarmAPIUtil의 함수를 지원하는 헬퍼 함수를 포함합니다.AlarmAPIProcessor: 빈 스크립트 포함 파일입니다. 이 파일을 사용하여 AlarmAPIProcessorOOB에서 재정의할 함수를 정의합니다.
경보 관리 Open API를 확장하여 다음과 같이 사용자 지정할 수 있습니다.
필수 매개변수
Alarm Management 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 스크립트 포함의 지정된 함수에 의해 호출됩니다.
사용자 지정 검증을 적용하려면 AlarmAPIProcessorOOB 헬퍼 함수를 AlarmAPIProcessor에서 동일한 이름의 함수 이름 및 파라미터로 재정의합니다. TMFAlarmAPIUtil은 기본 AlarmAPIProcessorOOB 도우미 함수를 대체하기 위해 새 AlarmAPIProcessor 함수를 호출합니다.verifyCreateEventPayload() -processCreateEvent()에 의해 호출됩니다.verifyClearEventPayload() -processClearEvent()에 의해 호출됩니다.verifyPatchEventPayload() -processPatchEvent()에 의해 호출됩니다.
이 예제에서 사용자 지정 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 작업 외에 추가 작업을 생성하려면 Alarm Management Open API에 대한 스크립팅된 REST 리소스를 추가로 생성합니다 . 새로 스크립팅된 REST 자원 의 논리는 기존 운영과 일치해야 합니다 . TMFAlarmAPIUtil에서 새 작업에 대한 함수를 정의합니다.
필드 매핑
기록을 생성하거나 업데이트할 때 경보 관리 Open API는 요청 본문 매개변수를 이벤트 기록 필드에 매핑합니다. 기록을 검색할 때 API는 기록 필드를 응답 객체 속성에 매핑합니다.
AlarmAPIProcessorOOB 스크립트 포함에는 PATCH 또는 POST 요청 본문을 이벤트 [em_event] 테이블의 레코드에 매핑하는 다음 함수가 포함되어 있습니다.
mapCreateAlarmObjectToEvent()mapClearAlarmObjectToEvent()mapPatchAlarmObjectToEvent()
또한 이벤트 GlideRecord를 GET, PATCH 또는 POST 요청에 대한 JSON 응답 객체에 매핑하는 다음 기능도 포함되어 있습니다.
modifyCreateEventResponse()수정ClearEventResponse()modifyPatchEventResponse()
다음 예에서 두 개의 AlarmAPIProcessor 함수는 AlarmAPIProcessorOOB 의 기본 함수를 대체하여 유형 field 매핑을 변경하고 심각도 필드에 대한 매핑을 추가합니다.
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'
});