Guide du développeur de la gestion des notifications d’événement Open API

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 4 minutes de lecture
  • Utilisez l’API ouverte Gestion des notifications d’événement 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énement pour effectuer diverses personnalisations.

    Extension de l’API ouverte Event Notification Management

    Vous pouvez étendre et modifier les fonctionnalités de l’API ouverte Gestion des notifications d’événement en modifiant les fichiers d’include de script associés.

    Voici les includes de script que l’API Event Notification Management Open utilise pour traiter les demandes de notification d’événement transmises à l’API :
    • AlarmAPIProcessorOOB : contient des fonctions d’assistance qui prennent en charge les fonctions dans l’include de script TMFTopicEventAPIUtil . Pour plus d’informations sur l’include de script AlarmAPIProcessorOOB , consultez le Guide du développeur d’Alarme Management Open API.
    • AlarmAPIProcessor : 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 des constantes et des informations sur les paramètres requis. Il contient également les schémas des charges utiles transmises dans le point de terminaison ouvert de Gestion des notifications d’événement .
    • TMFTopicEventAPIUtilOOB : contient des fonctions pour gérer les demandes d’API déclenchées par des flux de définition de déclencheurs externes qui ont les actions AlarmCreateNotification, AlarmChangeNotification, AlarmDeleteNotification qui créent, mettent à jour et suppriment des événements.
    • TMFTopicEventAPIUtil : 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 Open Event Notification Management en étendant/modifiant ces fichiers d’include de script.

    Paramètres requis

    L’API Gestion des notifications d’événement 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 supprimer une alarme d’événement.
    • getAlarmChangeEventSchema() : renvoie le schéma de validation pour le changement de champs dans un événement.

    Pour remplacer les schémas existants, définissez de nouveaux schémas dans l’include de script 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 un succès par défaut. Si une fonction d’assistance renvoie une erreur, elle arrête l’opération d’API.

    Pour appliquer des validations personnalisées, remplacez les fonctions d’assistance de 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 TMFTopicEventAPIUtil personnalisé remplace la fonction par défaut de l’include de script TMFTopicEventAPIUtilOOB pour effectuer une validation sur 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 du 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 elle eventType 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 Gestion des notifications d’événement Open 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énements aux attributs d’objet de réponse.

    L’include de script TMFTopicEventAPIUtilOOB contient les fonctions suivantes qui mappent les demandes de modification, de création et de suppression, en fonction de la valeur du eventType paramètre, à un enregistrement de la table d’événements [em_event].

    • mapAlarmChangeObjectToEvent()
    • mapCreateAlarmObjectToEvent()
    • mapDeleteAlarmObjectToEvent()
    Vous pouvez personnaliser les 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 TMFTopicEventAPIUtil pour remplacer les fonctions de mappage TMFTopicEventAPIUtilOOB .