Guia do desenvolvedor de API aberta da Gestão de notificações de eventos

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 4 min. de leitura
  • Use Gestão de notificações de eventos aberta API para criar, atualizar e excluir registros de evento na tabela Eventos [em_event].

    Este guia do desenvolvedor fornece informações sobre como estender o. Gestão de notificações de eventos aberta API para fazer várias personalizações.

    Estender a API de abertura da Gestão de notificações de eventos

    Você pode estender e modificar a funcionalidade do Gestão de notificações de eventos aberta Editando os arquivos de inclusão de script associados.

    A seguir estão as inclusões de script que o Gestão de notificações de eventos aberta A API usa para processar solicitações de notificação de evento passadas para a API:
    • AlarmAPIProcessorOOB : Contém funções de ajuda que oferecem suporte a funções no TMFTopicEventAPIUtil inclusão de script. Para obter informações adicionais sobre AlarmAPIProcessorOOB inclusão de script, consulte Guia do desenvolvedor da API de Gestão de alarmes aberta.
    • AlarmAPIProcessor : Um arquivo de inclusão de script vazio. Atualize este arquivo para definir todas as funções que você deseja substituir no AlarmAPIProcessorOOB inclusão de script.
    • JSONSchemaValidation : Contém funções para lidar com a validação de esquemas para a carga definida em TMFAlarmAPIConstantes inclusão de script. Esta inclusão de script está no plug-in tmt_core.
    • TMFAlarmAPIConstantes : Contém constantes e informações de parâmetro necessárias. Ele também contém os esquemas para as cargas passadas no Gestão de notificações de eventos aberta endpoint.
    • TMFTopicEventAPIUtilOOB : Contém funções para lidar com solicitações de API acionadas por fluxos de definição de gatilho externo que têm as ações AlarmCreateNotification , AlarmChangeNotification , AlarmDeleteNotification que criam, atualizam e excluem eventos.
    • TMFTopicEventAPIUtil : Um arquivo de inclusão de script vazio. Atualize este arquivo para definir todas as funções que você deseja substituir no TMFTopicEventAPIUtilOOB inclusão de script.

    As seções a seguir fornecem exemplos de algumas das personalizações que você pode fazer no Gestão de notificações de eventos aberta Processamento de API estendendo/modificando esses arquivos de inclusão de script.

    Parâmetros obrigatórios

    . Gestão de notificações de eventos A API utiliza esquemas JSON para definir os parâmetros necessários. Esses esquemas JSON são definidos no TMFAlarmAPIConstantes inclusão de script. Esses esquemas são usados para validar se as cargas de solicitação são válidas. Esses esquemas não são referenciados diretamente nas inclusões de script, mas são retornados pelas seguintes funções no TMFTopicEventAPIUtilOOB inclusão de script:

    • GetAlarmCreateEventSchema() Retorna o esquema de validação para criar um evento.
    • GetAlarmDeleteEventSchema() Retorna o esquema de validação para excluir um alarme de evento.
    • GetAlarmChangeEventSchema() Retorna o esquema de validação para mudar campos em um evento.

    Para substituir os esquemas existentes, defina novos esquemas em TMFTopicEventAPIUtilOOB incluir e substituir script TMFTopicEventAPIUtil funções de inclusão de script.

    Por exemplo:

    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\"
      ]
    }";

    Validação do corpo da solicitação

    Para executar validação adicional no corpo da solicitação, substitua as seguintes funções no TMFTopicEventAPIUtilOOB inclusão de script. Essas funções são chamadas pelas funções especificadas na mesma inclusão de script.

    • VerifyAlarmCreateEventPayload() Chamado por AlarmCreateEvent() .
    • VerifyAlarmDeleteEventPayload() Chamado por ProcessAlarmDeleteEvent() .
    • AlarmChangeEventPayload() Chamado por AlarmChangeEvent() .

    Todas essas funções retornam sucesso por padrão. Se uma função auxiliar retornar um erro, ela interromperá a operação da API.

    Para aplicar validações personalizadas, substitua as funções de ajuda no TMFTopicEventAPIUtilOOB inclusão de script com nomes de função e parâmetros idênticos no TMFTopicEventAPIUtil inclusão de script.

    Neste exemplo, uma função em um personalizado TMFTopicEventAPIUtil a inclusão de script substitui a função padrão no TMFTopicEventAPIUtilOOB inclusão de script para executar a validação no atributo de nome.

    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’
    });

    Validação de assinatura do corpo da solicitação

    Para modificar a validação de assinatura do corpo da solicitação para a API, você precisa substituir ValidateSubscription() . TMFTopicEventAPIUtilOOB inclusão de script. Esta função valida se o callbackURL que você está usando para criar a notificação de evento está registrado e determina se eventTypeestá registrado para o retorno de chamada gerado. Esta função é chamada pelo AlarmCreateEvent() , ProcessAlarmDeleteEvent() e AlarmChangeEvent() funções que também estão no TMFTopicEventAPIUtilOOB inclusão de script.

    Mapeamento de campo

    Ao criar ou atualizar registros, o Gestão de notificações de eventos aberta A API mapeia os parâmetros do corpo da solicitação para campos de registro de evento. Ao recuperar registros, a API mapeia campos de registro de evento para atributos de objeto de resposta.

    . TMFTopicEventAPIUtilOOB a inclusão de script contém as seguintes funções que mapeiam mudanças, criam e excluem solicitações, com base no valor em eventTypePara um registro na tabela Evento [em_event].

    • MapAlarmChangeObjectToEvent()
    • MapCreateAlarmObjectToEvent()
    • MapDeleteAlarmObjectToEvent()
    Você pode personalizar mapeamentos de campo para adicionar e recuperar dados para campos de tabela de evento adicionais [em_event] ou alterar os mapeamentos de campo padrão. Para trabalhar com mapeamentos, crie funções com nomes e parâmetros idênticos em TMFTopicEventAPIUtil para substituir TMFTopicEventAPIUtilOOB funções de mapeamento.