Entwicklerhandbuch für die Open API für Event Notification Management
Verwenden Sie die offene API zur Verwaltung von Ereignisbenachrichtigungen, um Ereignisdatensätze in der Tabelle „Ereignisse“ [em_event] zu erstellen, zu aktualisieren und zu löschen.
Dieser Entwicklerleitfaden enthält Informationen zum Erweitern der Open API von Event Notification Management, um verschiedene Anpassungen vorzunehmen.
Erweiterung der Open API zur Verwaltung von Ereignisbenachrichtigungen
Sie können die Funktionalität der Event Notification Management Open API erweitern und ändern, indem Sie die zugehörigen Skripteinbindungsdateien bearbeiten.
- AlarmAPIProcessorOOB: Enthält Hilfsfunktionen, die Funktionen in der Skripteinbindung TMFTopicEventAPIUtil unterstützen. Weitere Informationen zur Skripteinbindung AlarmAPIProcessorOOB finden Sie in der Entwicklerhandbuch für Alarm Management Open API.
- AlarmAPIProcessor: Eine leere Skripteinbindungsdatei. Aktualisieren Sie diese Datei, um alle Funktionen zu definieren, die Sie in der Skripteinbindung AlarmAPIProcessorOOB überschreiben möchten.
- JSONSchemaValidation: Enthält Funktionen zum Umgang mit der Validierung von Schemas für die in der Skripteinbindung TMFAlarmAPIConstants definierte Nutzlast. Diese Skripteinbindung befindet sich unter dem Plugin „tmt_core“.
- TMFAlarmAPIConstants: Enthält Konstanten und erforderliche Parameterinformationen. Sie enthält auch die Schemas für die Nutzlasten, die im offenen Endpunkt der Ereignis-Benachrichtigungsverwaltung übergeben werden.
- TMFTopicEventAPIUtilOOB: Enthält Funktionen zur Verarbeitung von API-Anforderungen, die von externen Auslöserdefinitions-Flows mit den Aktionen
AlarmCreateNotification,AlarmChangeNotification,AlarmDeleteNotificationausgelöst werden, mit denen Ereignisse erstellt, aktualisiert und gelöscht werden. - TMFTopicEventAPIUtil: Eine leere Skripteinbindungsdatei. Aktualisieren Sie diese Datei, um alle Funktionen zu definieren, die Sie in der Skripteinbindung TMFTopicEventAPIUtilOOB überschreiben möchten.
Die folgenden Abschnitte enthalten Beispiele für einige der Anpassungen, die Sie an der Open API-Verarbeitung von Event Notification Management vornehmen können, indem Sie diese Skripteinbindungsdateien erweitern/ändern.
Erforderliche Parameter
Die Event Notification Management- API verwendet JSON-Schemata, um die erforderlichen Parameter zu definieren. Diese JSON-Schemata sind in der Skripteinbindung TMFAlarmAPIConstants definiert. Diese Schemas werden verwendet, um zu validieren, ob Anforderungsnutzlasten gültig sind. Diese Schemas werden nicht direkt in den Skripteinbindungen referenziert, sondern von den folgenden Funktionen in der TMFTopicEventAPIUtilOOB-Skripteinbindung zurückgegeben :
- getAlarmCreateEventSchema(): Gibt das Validierungsschema für die Erstellung eines Ereignisses zurück.
- getAlarmDeleteEventSchema(): Gibt das Validierungsschema zum Löschen eines Ereignisalarms zurück.
- getAlarmChangeEventSchema(): Gibt das Validierungsschema zum Ändern von Feldern in einem Ereignis zurück.
Um die vorhandenen Schemas zu überschreiben, definieren Sie neue Schemas in der TMFTopicEventAPIUtilOOB-Skripteinbindung, und überschreiben Sie die TMFTopicEventAPIUtil-Skripteinbindungsfunktionen.
Beispiel:
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\"
]
}";
Validierung des Anforderungstexts
Um eine zusätzliche Validierung des Anforderungstexts durchzuführen, überschreiben Sie die folgenden Funktionen in der Skripteinbindung TMFTopicEventAPIUtilOOB. Diese Funktionen werden von den angegebenen Funktionen in derselben Skripteinbindung aufgerufen.
- VerifyAlarmCreateEventPayload(): Wird von processAlarmCreateEvent()aufgerufen.
- VerifyAlarmDeleteEventPayload(): Wird von processAlarmDeleteEvent()aufgerufen.
- VerifyAlarmChangeEventPayload(): Wird von processAlarmChangeEvent()aufgerufen.
Alle diese Funktionen geben standardmäßig eine Erfolgsmeldung zurück. Wenn eine Hilfsfunktion einen Fehler zurückgibt, wird der API-Vorgang angehalten.
Um anwenderdefinierte Validierungen anzuwenden, überschreiben Sie die Hilfsfunktionen in der Skripteinbindung TMFTopicEventAPIUtilOOB mit identischen Funktionsnamen und Parametern in der Skripteinbindung TMFTopicEventAPIUtil.
In diesem Beispiel überschreibt eine Funktion in einer anwenderdefinierten Skripteinbindung TMFTopicEventAPIUtil die Standardfunktion in der Skripteinbindung TMFTopicEventAPIUtilOOB, um eine Validierung des Namensattributs durchzuführen.
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’
});Fordern Sie die Validierung des Textkörperabonnements an
Um die Abonnementvalidierung des Anforderungstexts für die API zu ändern, müssen Sie die Funktion validSubscription () in der Skripteinbindung TMFTopicEventAPIUtilOOB überschreiben. Diese Funktion validiert, ob die „callbackURL“, die Sie zum Erstellen der Ereignisbenachrichtigung verwenden, registriert ist, und bestimmt, ob eventType für den ausgelösten Rückruf registriert ist. Diese Funktion wird von den Funktionen processAlarmCreateEvent(), processAlarmDeleteEvent()und processAlarmChangeEvent() aufgerufen, die auch in der Skripteinbindung TMFTopicEventAPIUtilOOB enthalten sind.
Feldzuordnung
Beim Erstellen oder Aktualisieren von Datensätzen ordnet die offene API für Event Notification Management Anforderungstextparameter Ereignisdatensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Ereignisdatensatzfelder Antwortobjektattributen zu.
Die TMFTopicEventAPIUtilOOB-Skripteinbindung enthält die folgenden Funktionen, die Change-, Erstellungs- und Löschanforderungen basierend auf dem Wert im Parameter eventType einem Datensatz in der Ereignistabelle [em_event] zuordnen.
- zuordnenAlarmChangeObjectToEvent()
- mapCreateAlarmObjectToEvent ()
- ZuordnenAlarmObjektZuEreignis Löschen ()