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

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 4 min. de leitura
  • Use o. Gestão de notificações de eventos aberta API para criar, atualizar e excluir registros de eventos 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.

    Estendendo a API aberta 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 os scripts que incluem o. Gestão de notificações de eventos aberta A API usa para processar solicitações de notificação de eventos passadas para a API:
    • ProcessoAPIAlarmOOB : Contém funções auxiliares que oferecem suporte a funções no TMFTopicEventAPIUtil inclusão de script. Para obter informações adicionais sobre ProcessoAPIAlarmOOB inclusão de script, consulte Gestão de alarmes Abrir Guia do desenvolvedor da API.
    • AlarmAPIProcessor : Um arquivo de inclusão de script vazio. Atualize este arquivo para definir todas as funções que você deseja substituir no ProcessoAPIAlarmOOB inclusão de script.
    • JSONSchemaValidation : Contém funções para manipular a validação de esquemas para a carga definida no 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 manipular solicitações de API acionadas por fluxos de definição de gatilho externo que têm as ações Criar Notificação , 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.
    • Schema de getAlarmChangeEventSchema() : Retorna o esquema de validação para mudar campos em um evento.

    Para substituir os esquemas existentes, defina novos esquemas no TMFTopicEventAPIUtilOOB o script inclui e substitui o. 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 ProcessAlarmCreateEvent() .
    • VerifyAlarmDeleteEventPayload() : Chamado por ProcessAlarmDeleteEvent() .
    • Carga() : Chamado por ProcessAlarmChangeEvent() .

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

    Para aplicar validações personalizadas, substitua as funções auxiliares 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 da 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() em 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 o. eventTypeestá registrado para o retorno de chamada gerado. Esta função é chamada pelo ProcessAlarmCreateEvent() , ProcessAlarmDeleteEvent() e. ProcessAlarmChangeEvent() funções que também estão em 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 no eventTypePara um registro na tabela de 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.