Guia do desenvolvedor da Open API para gestão de alarmes

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 3 min. de leitura
  • Use a API aberta de 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 de gestão de alarmes para fazer várias personalizações.

    Como estender a API aberta de gestão de alarmes

    A API Abrir de gestão de alarmes pode ser estendida editando 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 de gestão de alarmes para fazer as seguintes personalizações.

    Parâmetros obrigatórios

    A API de gestão de alarmes utiliza esquemas JSON para manter 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\"]}";

    Solicitar validação do corpo

    Para executar validações adicionais no corpo da solicitação, substitua as funções a seguir na inclusão de script AlarmAPIProcessorOOB . Essas funções são chamadas pelas funções especificadas na inclusão de script TMFAlarmAPIUtil .
    • verifyCreateEventPayload() — Chamado por processCreateEvent().
    • verifyClearEventPayload() - Chamado por processClearEvent().
    • verifiquePatchEventPayload() — Chamado por processPatchEvent().
    Todas essas funções retornam verdadeiro por padrão. Se uma função auxiliar retornar falso , ela interromperá a operação de API.
    Para aplicar validações personalizadas, substitua as funções auxiliares 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 auxiliares AlarmAPIProcessorOOB padrão.
    Neste exemplo, uma função em uma inclusão de script personalizada AlarmAPIProcessor substitui uma função padrão em AlarmAPIProcessorOOB para executar a validação no atributo 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'
    });

    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 de 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 de gestão de alarmes mapeia os parâmetros do corpo da solicitação para eventos 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()
    • modifyClearEventResponse()
    • modifyPatchEventResponse()
    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 Gravidade.
    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'
    });