Event Notification Management Open API 개발자 가이드
이벤트 알림 관리 Open API를 사용하여 이벤트 [em_event] 테이블에서 이벤트 기록을 생성, 업데이트 및 삭제합니다.
이 개발자 가이드에서는 Event Notification Management Open API 를 확장하여 다양한 사용자 지정을 수행하는 방법에 대한 정보를 제공합니다.
Event Notification Management Open API 확장
연결된 스크립트 포함 파일을 편집하여 Event Notification Management Open API의 기능을 확장하고 수정할 수 있습니다.
- AlarmAPIProcessorOOB:TMFTopicEventAPIUtil 스크립트 포함의 함수를 지원하는 도우미 함수를 포함합니다. AlarmAPIProcessorOOB 스크립트 포함에 대한 자세한 내용은 알람 관리 Open API 개발자 가이드.
- AlarmAPIProcessor: 빈 스크립트 포함 파일입니다. 이 파일을 업데이트하여 AlarmAPIProcessorOOB 스크립트 포함에서 재정의할 함수를 정의합니다.
- JSONSchemaValidation: TMFAlarmAPIConstants 스크립트 포함에 정의된 페이로드에 대한 스키마의 유효성 검증을 처리하는 함수를 포함합니다. 이 스크립트 포함은 tmt_core 플러그인 아래에 있습니다.
- TMFAlarmAPIConstants: 상수 및 필수 매개 변수 정보를 포함합니다. 또한 Event Notification Management 오픈 엔드포인트에 전달된 페이로드에 대한 스키마도 포함되어 있습니다.
- TMFTopicEventAPIUtilOOB: 이벤트를 생성, 업데이트 및 삭제하는
AlarmCreateNotification,AlarmChangeNotification,AlarmDeleteNotification작업이 있는 외부 트리거 정의 플로우에 의해 트리거되는 API 요청을 처리하는 함수를 포함합니다. - TMFTopicEventAPIUtil: 빈 스크립트 포함 파일입니다. 이 파일을 업데이트하여 TMFTopicEventAPIUtilOOB 스크립트 포함에서 재정의할 함수를 정의합니다.
다음 절에서는 이러한 스크립트 포함 파일을 확장/수정하여 Event Notification Management Open API 처리를 수행할 수 있는 일부 사용자 정의 예를 제공합니다.
필수 매개변수
Event Notification Management API는 JSON 스키마를 사용하여 필수 매개변수를 정의합니다. 이러한 JSON 스키마는 TMFAlarmAPIConstants 스크립트 포함에 정의되어 있습니다. 이러한 스키마는 요청 페이로드가 유효한지 여부를 확인하는 데 사용됩니다. 이러한 스키마는 스크립트 포함에서 직접 참조되지 않지만 TMFTopicEventAPIUtilOOB 스크립트 포함의 다음 함수에 의해 반환됩니다.
- getAlarmCreateEventSchema(): 이벤트를 생성하기 위한 유효성 검사 스키마를 반환합니다.
- getAlarmDeleteEventSchema(): 이벤트 알람을 삭제하기 위한 유효성 검사 스키마를 반환합니다.
- getAlarmChangeEventSchema(): 이벤트의 필드를 변경하기 위한 유효성 검사 스키마를 반환합니다.
기존 스키마를 재정의하려면 TMFTopicEventAPIUtilOOB 스크립트 포함에서 새 스키마를 정의하고 TMFTopicEventAPIUtil 스크립트 포함 함수를 재정의합니다.
예:
var TMFTopicEventAPIUtil = Class.create();
TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
// Define overriding functions here
// Define getAlarmCreateEventSchema here to override OOTB function in TMFTopicEventAPIUtilOOB
getAlarmCreateEventSchema: function() {
return JSON.parse(TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA);
},
type: ‘TMFTopicEventAPIUtil’
});
// New schema
TMFTopicEventAPIUtil.CUSTOMIZED_SCHEMA = "{
\"title\":\"AlarmCreateEvent\",
\"type\":\"object\",
\"properties\":{
\"event\":{
\"type\":\"object\",
\"properties\":{
\"alarm\":{
\"type\":\"object\",
\"properties\":{
\"id\":{
\"type\":\"string\"
},
\"href\":{
\"type\":\"string\"
},
\"externalAlarmId\":{
\"type\":\"string\"
},
\"alarmType\":{
\"type\":\"string\"
},
\"perceivedSeverity\":{
\"type\":\"string\"
},
\"probableCause\":{
\"type\":\"string\"
},
\"alarmedObject\":{
\"type\":\"object\",
\"properties\":{
\"id\":{
\"type\":\"string\"
},
\"href\":{
\"type\":\"string\"
}
},
\"required\":[
\"id\"
]
},
\"crossedThresholdInformation\":{
\"type\":\"object\",
\"properties\":{
\"thresholdId\":{
\"type\":\"string\"
}
},
\"required\":[
\"thresholdId\"
]
},
\"affectedService\":{
\"type\":\"array\",
\"properties\":{
\"id\":{
\"type\":\"string\"
},
\"href\":{
\"type\":\"string\"
}
},
\"items\":{
\"type\":\"object\",
\"required\":[
\"id\"
]
}
},
\"sourceSystemId\":{
\"type\":\"string\"
},
\"specificProblem\":{
\"type\":\"string\"
}
},
\"required\":[
\"externalAlarmId\",\"alarmType\",\"perceivedSeverity\",\"probableCause\",\"sourceSystemId\",\"alarmedObject\"
]
}
},
\"required\":[
\"alarm\"
]
}
},
\"required\":[
\"event\"
]
}";
요청 본문 확인
요청 본문에 대한 추가 유효성 검사를 수행하려면 TMFTopicEventAPIUtilOOB 스크립트 포함에서 다음 함수를 재정의합니다. 이러한 함수는 동일한 스크립트 포함에서 지정된 함수에 의해 호출됩니다.
- verifyAlarmCreateEventPayload():processAlarmCreateEvent()에 의해 호출됩니다.
- verifyAlarmDeleteEventPayload():processAlarmDeleteEvent()에 의해 호출됩니다.
- verifyAlarmChangeEventPayload():processAlarmChangeEvent()에 의해 호출됩니다.
이러한 모든 함수는 기본적으로 성공을 반환합니다. 도우미 함수가 오류를 반환하면 API 작업이 중지됩니다.
사용자 지정 확인을 적용하려면 TMFTopicEventAPIUtil 스크립트 포함의 동일한 함수 이름 및 매개 변수를 사용하여 TMFTopicEventAPIUtilOOB 스크립트 포함의 도우미 함수를 재정의합니다.
이 예제에서 사용자 지정 TMFTopicEventAPIUtil 스크립트 포함의 함수는 TMFTopicEventAPIUtilOOB 스크립트 포함의 기본 함수를 재정의하여 이름 특성에 대한 유효성 검사를 수행합니다.
var TMFTopicEventAPIUtil = Class.create();
TMFTopicEventAPIUtil.prototype = Object.extendsObject(TMFTopicEventAPIUtilOOB, {
// Define overriding functions here
verifyAlarmCreateEventPayload: function(eventPayload,responseObject){
// Returning error status terminates the POST request
// Make sure to assign error message and reason
if (eventPayload.type != "unique") {
responseObject.setMessage("Failed");
responseObject.setReason("No reason needed");
return responseObject.status = “error”;
}
},
type: ‘TMFTopicEventAPIUtil’
});요청 본문 구독 확인
API에 대한 요청 본문 구독 유효성 검사를 수정하려면 TMFTopicEventAPIUtilOOB 스크립트 포함에서 validateSubscription() 함수를 재정의해야 합니다. 이 함수는 이벤트 알림을 만드는 데 사용하는 callbackURL이 등록되었는지 여부를 확인하고 발생한 콜백에 등록되어 있는지 여부를 eventType 확인합니다. 이 함수는 TMFTopicEventAPIUtilOOB 스크립트 포함에도 있는 processAlarmCreateEvent(),processAlarmDeleteEvent() 및 processAlarmChangeEvent() 함수에 의해 호출됩니다.
필드 매핑
기록을 작성하거나 업데이트할 때 이벤트 알림 관리 Open API는 요청 본문 매개변수를 이벤트 기록 필드에 매핑합니다. 기록을 검색할 때 API는 이벤트 기록 필드를 응답 객체 속성에 매핑합니다.
TMFTopicEventAPIUtilOOB 스크립트 포함에는 매개 변수의 값 eventType 에 따라 변경, 만들기 및 삭제 요청을 이벤트 [em_event] 테이블의 레코드에 매핑하는 다음 함수가 포함되어 있습니다.
- mapAlarmChangeObjectToEvent()
- mapCreateAlarmObjectToEvent()
- mapDeleteAlarmObjectToEvent()