Gestion des notifications d’événements Guide du développeur de l’API ouverte
Utilisez l’API ouverte Gestion des notifications d’événements pour créer, mettre à jour et supprimer des enregistrements d’événements dans la table Événements [em_event].
Ce guide du développeur fournit des informations sur la façon d’étendre l’API ouverte Gestion des notifications d’événements pour effectuer diverses personnalisations.
Extension de l’API ouverte Event Notification Management
Vous pouvez étendre et modifier la fonctionnalité de l’API ouverte de gestion des notifications d’événements en modifiant ses fichiers de script include associés.
- AlarmAPIProcessorOOB : contient des fonctions d’assistance qui prennent en charge les fonctions de l’include de script TMFTopicEventAPIUtil . Pour plus d’informations sur l’include de script AlarmAPIProcessorOOB, consultez .Guide du développeur de l’API ouverte de gestion des alarmes
- AlarmAPIProcessor : un fichier d’include de script vide. Mettez à jour ce fichier pour définir toutes les fonctions que vous souhaitez remplacer dans l’include de script AlarmAPIProcessorOOB .
- JSONSchemaValidation : contient des fonctions pour gérer la validation des schémas pour la charge utile définie dans l’include de script TMFAlarmAPIConstants . Cet include de script se trouve sous le module d’extension tmt_core.
- TMFAlarmAPIConstants : contient les constantes et les informations de paramètres requises. Il contient également les schémas des charges utiles transmises dans le point de terminaison Event Notification Management Open .
- TMFTopicEventAPIUtilOOB : contient des fonctions pour gérer les demandes d’API qui sont déclenchées par des flux de définition de déclencheur externes qui ont les actions
AlarmCreateNotification,AlarmChangeNotification,AlarmDeleteNotificationqui créent, mettent à jour et suppriment des événements. - TMFTopicEventAPIUtil : un fichier d’include de script vide. Mettez à jour ce fichier pour définir toutes les fonctions que vous souhaitez remplacer dans l’include de script TMFTopicEventAPIUtilOOB .
Les sections suivantes fournissent des exemples de personnalisations que vous pouvez apporter au traitement de l’API ouverte de gestion des notifications d’événements en étendant/modifiant ces fichiers de script include.
Paramètres requis
L’API Event Notification Management utilise des schémas JSON pour définir les paramètres requis. Ces schémas JSON sont définis dans l’include de script TMFAlarmAPIConstants . Ces schémas sont utilisés pour valider si les charges utiles des demandes sont valides. Ces schémas ne sont pas directement référencés dans les includes de script, mais sont renvoyés par les fonctions suivantes dans l’include de script TMFTopicEventAPIUtilOOB :
- getAlarmCreateEventSchema() : renvoie le schéma de validation pour la création d’un événement.
- getAlarmDeleteEventSchema() : renvoie le schéma de validation pour la suppression d’une alarme d’événement.
- getAlarmChangeEventSchema() : renvoie le schéma de validation pour la modification des champs dans un événement.
Pour remplacer les schémas existants, définissez de nouveaux schémas dans l’include de script de TMFTopicEventAPIUtilOOB et remplacez les fonctions d’include de script TMFTopicEventAPIUtil.
Par exemple :
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\"
]
}";
Validation du corps de la demande
Pour effectuer une validation supplémentaire sur le corps de la demande, remplacez les fonctions suivantes dans l’include de script TMFTopicEventAPIUtilOOB . Ces fonctions sont appelées par les fonctions spécifiées dans le même include de script.
- verifyAlarmCreateEventPayload() : appelé par processAlarmCreateEvent().
- verifyAlarmDeleteEventPayload() : appelé par processAlarmDeleteEvent().
- verifyAlarmChangeEventPayload() : appelé par processAlarmChangeEvent().
Toutes ces fonctions renvoient la réussite par défaut. Si une fonction d’assistance renvoie une erreur, elle arrête le fonctionnement de l’API.
Pour appliquer des validations personnalisées, remplacez les fonctions d’assistance dans l’include de script TMFTopicEventAPIUtilOOB par des noms de fonctions et des paramètres identiques dans l’include de script TMFTopicEventAPIUtil .
Dans cet exemple, une fonction d’un include de script personnalisé TMFTopicEventAPIUtil remplace la fonction par défaut de l’include de script TMFTopicEventAPIUtilOOB pour effectuer la validation de l’attribut name.
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’
});Corps de la demande Validation de l’abonnement
Pour modifier la validation de l’abonnement au corps de la demande pour l’API, vous devez remplacer la fonction validateSubscription() dans l’include de script TMFTopicEventAPIUtilOOB . Cette fonction valide si l’URL de rappel que vous utilisez pour créer la notification d’événement est enregistrée et détermine si l’URL de eventType rappel est enregistrée pour le rappel déclenché. Cette fonction est appelée par les fonctions processAlarmCreateEvent(),processAlarmDeleteEvent() et processAlarmChangeEvent() qui se trouvent également dans l’include de script TMFTopicEventAPIUtilOOB .
Mappage de champs
Lors de la création ou de la mise à jour d’enregistrements, l’API ouverte Event Notification Management mappe les paramètres du corps de la demande aux champs d’enregistrement d’événement. Lors de la récupération des enregistrements, l’API mappe les champs d’enregistrement d’événement aux attributs d’objet de réponse.
L’include de script Script Include TMFTopicEventAPIUtilOOB contient les fonctions suivantes qui mappent les demandes de changement, de création et de suppression, en fonction de la valeur du eventType paramètre, à un enregistrement dans la table Événement [em_event].
- mapAlarmChangeObjectToEvent()
- mapCreateAlarmObjectToEvent()
- mapDeleteAlarmObjectToEvent()