Guide du développeur de l’API ouverte de gestion des alarmes

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 minutes de lecture
  • 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.

    Ces includes de script ne doivent être modifiés qu’en tenant compte des conséquences des changements.
    • 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

    L’API de gestion des alarmes utilise des schémas JSON pour contenir les informations de paramètres requises. 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 référencés directement dans les includes de script et sont renvoyés par les méthodes suivantes dans le script include AlarmAPIProcessorOOB :
    • 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.
    Pour remplacer les schémas existants, définissez de nouveaux schémas dans l’include de script AlarmAPIProcessor et remplacez les méthodes d’inclusion de script AlarmAPIProcessorOOB.
    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

    Pour effectuer une validation supplémentaire sur le corps de la demande, remplacez les fonctions suivantes dans l’include de script AlarmAPIProcessorOOB . Ces fonctions sont appelées par les fonctions spécifiées dans l’include de script TMFAlarmAPIUtil .
    • verifyCreateEventPayload() : appelé par processCreateEvent().
    • verifyClearEventPayload() : appelé par processClearEvent().
    • verifyPatchEventPayload() : appelé par processPatchEvent().
    Toutes ces fonctions retournent true par defalut. Si une fonction d’assistance renvoie false , elle arrête le fonctionnement de l’API.
    Pour appliquer des validations personnalisées, remplacez les fonctions d’assistance AlarmAPIProcessorOOB par des noms de fonction et des paramètres portant le même nom dans AlarmAPIProcessor. Les nouvelles fonctions AlarmAPIProcessor sont appelées par TMFAlarmAPIUtil pour remplacer les fonctions d’assistance AlarmAPIProcessorOOB par défaut.
    Dans cet exemple, une fonction d’un include de script AlarmAPIProcessor personnalisé remplace une fonction par défaut dans AlarmAPIProcessorOOB pour effectuer la validation de l’attribut name.
    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.

    L’include de script AlarmAPIProcessorOOB contient les fonctions suivantes pour mapper le corps d’une demande PATCH ou POST à un enregistrement dans la table Event [em_event].
    • mapCreateAlarmObjectToEvent()
    • mapClearAlarmObjectToEvent()
    • mapPatchAlarmObjectToEvent()
    Il contient également les fonctions suivantes pour mapper un GlideRecord d’événement à un objet de réponse JSON pour les demandes GET, PATCH ou POST.
    • modifyCreateEventResponse()
    • modifyClearEventResponse()
    • modifyPatchEventResponse()
    Vous pouvezutiliser des mappages de champs pour ajouter et récupérer des données pour des champs supplémentaires de la table d’événements [em_event] ou modifier les mappages de champs par défaut. Pour utiliser des mappages, créez des fonctions avec des noms et des paramètres identiques dans AlarmAPIProcessor pour remplacer les fonctions de mappage AlarmAPIProcessorOOB . TMFAlarmAPIUtil utilise ces fonctions AlarmAPIProcessor pour remplacer les fonctions de mappage AlarmAPIProcessorOOB par défaut.
    Dans l’exemple suivant, deux fonctions AlarmAPIProcessor remplacent les fonctions par défaut de AlarmAPIProcessorOOB pour modifier le mappage Type dechamp et ajouter un mappage pour le champ Sévérité .
    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'
    });