Guia do desenvolvedor da API aberta da Gestão de alarmes

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 3 min. de leitura
  • Use a API aberta da Gestão de alarmes para criar e atualizar dados na tabela Eventos [em_event].

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

    Estendendo a API aberta da Gestão de alarmes

    A API Alarm Management Open pode ser estendida editando as inclusões de script.

    Essas inclusões de script só devem ser editadas com uma compreensão das consequências das mudanças.
    • TMFAlarmAPIConstants: contém constantes e informações de parâmetro necessárias.
    • TMFAlarmAPIUtil: contém funções para lidar com solicitações de API.
    • AlarmAPIProcessorOOB: contém funções de ajuda que oferecem suporte a funções em TMFAlarmAPIUtil.
    • AlarmAPIProcessor: um arquivo de inclusão de script vazio. Use este arquivo [ para definir as funções que você deseja substituir de AlarmAPIProcessorOOB.

    Estenda a API aberta da Gestão de alarmes para fazer as personalizações a seguir.

    Parâmetros obrigatórios

    A API de gestão de alarmes utiliza esquemas JSON para armazenar as informações de parâmetros necessárias. Esses esquemas JSON são definidos na inclusão de script TMFAlarmAPIConstants. Esses esquemas são usados para validar se as cargas da solicitação são válidas. Esses esquemas não são referenciados diretamente em inclusões de script e são retornados pelos seguintes métodos na inclusão de script AlarmAPIProcessorOOB :
    • getCreateEventSchema: retorna o esquema de validação para criar um evento.
    • getClearEventSchema: retorna o esquema de validação para limpar um alarme de evento.
    • getPatchEventSchema: retorna o esquema de validação para corrigir um evento.
    Para substituir esquemas existentes, defina novos esquemas na inclusão de script AlarmAPIProcessor e substitua os métodos de inclusão 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\"]}";

    Validação do corpo da solicitação

    Para executar uma validação adicional no corpo da solicitação, substitua as seguintes funções no script AlarmAPIProcessorOOB incluem . Essas funções são chamadas de pelas funções especificadas em a inclusão de script TMFAlarmAPIUtil .
    • VerificarCreateEventPayload() — Chamado por processCreateEvent().
    • verificaçãoClearEventPayload() — Chamado por processClearEvent().
    • VerificarPatchEventPayload() — Chamado por processPatchEvent().
    Todas essas funções retornam verdadeiro por padrão. Se uma função auxiliar retornar falso , ela interromperá a operação da API.
    Para aplicar validações personalizadas, substitua as funções de ajuda AlarmAPIProcessorOOB por nomes de função e parâmetros com nomes idênticos em AlarmAPIProcessor. As novas funções AlarmAPIProcessor são chamadas por TMFAlarmAPIUtil para substituir as funções de ajuda AlarmAPIProcessorOOB padrão.
    Neste exemplo, uma função em uma inclusão de script AlarmAPIProcessor personalizada substitui uma função padrão em AlarmAPIProcessorOOB para executar a validação no atributo de nome.
    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'
    });

    Operações REST adicionais

    Para criar operações adicionais além das operações GET, PATCH e POST existentes, crie recursos REST de script adicionais para a API aberta da Gestão de alarmes. A lógica dos novos recursos REST de script deve ser consistente com as operações existentes. Defina funções para as novas operações em TMFAlarmAPIUtil.

    Mapeamento de campo

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

    A inclusão de script AlarmAPIProcessorOOB contém as seguintes funções para mapear um corpo de solicitação PATCH ou POST para um registro na tabela Evento [em_event].
    • mapCreateAlarmObjectToEvent()
    • mapClearAlarmObjectToEvent()
    • mapPatchAlarmObjectToEvent()
    Ele também contém as seguintes funções para mapear um evento GlideRecord para um objeto de resposta JSON para solicitações GET, PATCH ou POST.
    • modifyCreateEventResponse()
    • modificaClearEventResponse()
    • modificaPatchEventResponse()
    Você pode cpersonalizar mapeamentos de campo para adicionar e recuperar dados para campos adicionais da tabela Evento [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 AlarmAPIProcessor para substituir as funções de mapeamento AlarmAPIProcessorOOB. TMFAlarmAPIUtil usa essas funções AlarmAPIProcessor para substituir as funções de mapeamento AlarmAPIProcessorOOB padrão.
    No exemplo a seguir, duas funções AlarmAPIProcessor substituem as funções padrão em AlarmAPIProcessorOOB para mudar o mapeamento do campo Tipo fe adicionar um mapeamento para o campo Severidade.
    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'
    });