Guide du développeur de l’API ouverte de gestion des alarmes
Utilisez l’API ouverte de gestion des alarmes pour créer et mettre à jour des données dans la table Événements [em_event].
Ce guide du développeur fournit des informations sur la façon d’étendre le Gestion des alarmes Ouvrir l’API pour effectuer diverses personnalisations.
Extension de l’API ouverte de gestion des alarmes
L’API ouverte de gestion des alarmes peut être étendue en modifiant les includes de script.
TMFAlarmAPIConstants: contient les constantes et les informations de paramètres requises.TMFAlarmAPIUtil: contient des fonctions pour gérer les demandes d’API.AlarmAPIProcessorOOB: contient des fonctions d’assistance qui prennent en charge les fonctions de TMFAlarmAPIUtil.AlarmAPIProcessor: un fichier d’include de script vide. Utilisez ce fichier pour définir toutes les fonctions que vous souhaitez remplacer à partir de AlarmAPIProcessorOOB.
Étendez l’API ouverte de gestion des alarmes pour effectuer les personnalisations suivantes.
Paramètres requis
- getCreateEventSchema : renvoie le schéma de validation pour la création d’un événement.
- getClearEventSchema : renvoie le schéma de validation pour effacer une alarme d’événement.
- getPatchEventSchema : renvoie le schéma de validation pour l’application de correctif d’un événement.
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\"]}";Validation du corps de la demande
verifyCreateEventPayload(): appelé parprocessCreateEvent().verifyClearEventPayload(): appelé parprocessClearEvent().verifyPatchEventPayload(): appelé parprocessPatchEvent().
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'
});Opérations REST supplémentaires
Pour créer des opérations supplémentaires au-delà des opérations GET, PATCH et POST existantes, créez des ressources REST scriptées supplémentaires pour l’API ouverte de gestion des alarmes . La logique des nouvelles ressources REST scriptées doit être cohérente avec les opérations existantes. Définissez les fonctions pour les nouvelles opérations dans TMFAlarmAPIUtil.
Mappage de champs
Lors de la création ou de la mise à jour d’enregistrements, l’API ouverte de gestion des alarmes 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 aux attributs de l’objet de réponse.
mapCreateAlarmObjectToEvent()mapClearAlarmObjectToEvent()mapPatchAlarmObjectToEvent()
modifyCreateEventResponse()modifyClearEventResponse()modifyPatchEventResponse()
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'
});