Event Notification Management Open API-Entwicklerleitfaden
Verwenden Sie die offene Event Notification Management- API, um Event-Datensätze in der Tabelle „Events“ [em_event] zu erstellen, zu aktualisieren und zu löschen.
Dieser Entwicklerleitfaden enthält Informationen zum Erweitern der Open API für Event Notification Management, um verschiedene Anpassungen vorzunehmen.
Erweitern der Open Event Notification Management-API
Sie können die Funktionalität der offenen Event Notification Management- API erweitern und ändern, indem Sie die zugehörigen Skripteinbindungsdateien bearbeiten.
- AlarmAPIProcessorOOB: Enthält Hilfsfunktionen, die Funktionen in der TMFTopicEventAPIUtil-Skripteinbindung unterstützen. Weitere Informationen zur Skripteinbindung AlarmAPIProcessorOOB finden Sie unter Alarm Management Open API-Entwicklerleitfaden.
- 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 zur Validierung von Schemas für die in der TMFAlarmAPIConstants-Skripteinbindung 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 von Event Notification Management übergeben werden.
- TMFTopicEventAPIUtilOOB: Enthält Funktionen zur Verarbeitung von API-Anforderungen, die durch externe Auslöserdefinitions-Flows mit den Aktionen
AlarmCreateNotification,AlarmChangeNotificationundAlarmDeleteNotificationausgelöst werden, die Events erstellen, aktualisieren und löschen. - 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 offenen 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 erforderliche Parameter zu definieren. Diese JSON-Schemata sind in der Skripteinbindung TMFAlarmAPIConstants definiert. Diese Schemata werden verwendet, um zu überprüfen, ob Anforderungsnutzlasten gültig sind. Diese Schemata werden in den Skripteinbindungen nicht direkt referenziert, sondern von den folgenden Funktionen in der TMFTopicEventAPIUtilOOB-Skripteinbindung zurückgegeben :
- getAlarmCreateEventSchema(): Gibt das Validierungsschema für die Erstellung eines Events zurück.
- getAlarmDeleteEventSchema(): Gibt das Validierungsschema für das Löschen eines Event-Alarms zurück.
- getAlarmChangeEventSchema(): Gibt das Validierungsschema für das Ändern von Feldern in einem Event zurück.
Um die vorhandenen Schemas zu überschreiben, definieren Sie neue Schemas in der TMFTopicEventAPIUtilOOB-Skripteinbindung und überschreiben 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 für den Anforderungstext durchzuführen, überschreiben Sie die folgenden Funktionen in der Skripteinbindung TMFTopicEventAPIUtilOOB. Diese Funktionen werden von den angegebenen Funktionen in derselben Skripteinbindung aufgerufen.
- überprüfenAlarmCreateEventPayload(): Wird von processAlarmCreateEvent()aufgerufen.
- überprüfenAlarmDeleteEventPayload(): Wird von processAlarmDeleteEvent()aufgerufen.
- überprüfenAlarmChangeEventPayload(): Wird von processAlarmChangeEvent()aufgerufen.
Alle diese Funktionen geben standardmäßig „Erfolg“ zurück. Wenn eine Hilfsfunktion einen Fehler zurückgibt, wird der API-Vorgang angehalten.
Um benutzerdefinierte Validierungen anzuwenden, überschreiben Sie die Hilfsfunktionen in der TMFTopicEventAPIUtilOOB-Skripteinbindung mit identischen Funktionsnamen und Parametern in der TMFTopicEventAPIUtil-Skripteinbindung.
In diesem Beispiel überschreibt eine Funktion in einer benutzerdefinierten TMFTopicEventAPIUtil-Skripteinbindung die Standardfunktion in der TMFTopicEventAPIUtilOOB-Skripteinbindung, um eine Validierung für das Namensattribut 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’
});Anforderungstextabonnement validieren
Um die Validierung des Abonnements für den Anforderungstext für die API zu ändern, müssen Sie die validSubscription ()- Funktion in der TMFTopicEventAPIUtilOOB-Skripteinbindung überschreiben. Diese Funktion validiert, ob die callbackURL, die Sie zum Erstellen der Event-Benachrichtigung 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 sich auch in der TMFTopicEventAPIUtilOOB-Skripteinbindung befinden.
Feldzuordnung
Beim Erstellen oder Aktualisieren von Datensätzen ordnet die offene Event Notification Management- API Anforderungstextparameter Event-Datensatzfeldern zu. Beim Abrufen von Datensätzen ordnet die API Event-Datensatzfelder 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 Event-Tabelle [em_event] zuordnen.
- mapAlarmChangeObjectToEvent()
- mapCreateAlarmObjectToEvent()
- mapDeleteAlarmObjectToEvent()