API do Depurador de script

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 8 min. de leitura
  • A API do Depurador de script fornece endpoints para depurar linhas de código JavaScript do lado do servidor, como regras de negócio e inclusões de script.

    Para obter mais informações sobre o Depurador de script, consulte Depurador de script e Log de sessão.

    Esta API está disponível por padrão.

    Depurador de script - GET /js/debugpoints/script/{tableName}/{sysId}/{fieldName}

    Recupere uma lista de pontos de interrupção ou logpoints em um script do lado do servidor, como uma regra de negócio ou inclusão de script.

    Formato da URL

    URL padrão: /api/now/js/debugpoints/script/{tableName}/{sysId}/{fieldName}

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    tableName Nome da tabela que contém o script do lado do servidor, como sys_script ou sys_script_include.

    Tipo de dados: cadeia de caracteres

    sysId Sys_id do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    fieldName Nome do campo que contém o conteúdo do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    Tabela 2. Parâmetros de consulta
    Nome Descrição
    Nenhum(a)
    Tabela 3. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    Nenhum(a)

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP de REST API.

    Tabela 6. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.
    403 Usuário não autorizado. O usuário que executou a solicitação não tem permissão para acessar informações de ponto de interrupção ou de ponto de log para o registro especificado.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    canWrite Sinalizador que indica se o usuário conectado no momento pode definir ou modificar pontos de interrupção do script.
    Valores possíveis:
    • verdadeiro: você pode definir ou modificar pontos de interrupção.
    • falso: você não pode definir ou modificar pontos de interrupção.

    Tipo de dados: booliano

    pontos de depuração Lista de todos os pontos de interrupção e logpoints no script.
    "debugpoints": {
      "breakpoint": {Object}
      "logpoint": {Object}
    }

    Tipo de dados: objeto

    debugpoints.breakpoint Lista de todos os pontos de interrupção no script, apresentados como pares de chave-valor. A chave é o número da linha do ponto de interrupção. O valor é um objeto que contém o sys_id e o texto do ponto de interrupção.
    "breakpoint": {
      <line_number>: {Object}
    }

    Tipo de dados: objeto

    debugpoints.breakpoint.<line_number> Número de linha do ponto de interrupção.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    Tipo de dados: objeto

    debugpoints.breakpoint.<line_number> .evaluationString Texto do ponto de interrupção. Se o ponto de interrupção for condicional, o assessmentString conterá o texto da condição. Se o ponto de interrupção não for condicional, o assessmentString será uma cadeia de caracteres vazia.

    Tipo de dados: cadeia de caracteres

    debugpoints.breakpoint.<line_number> .sysId Sys_id do ponto de interrupção.

    Tipo de dados: cadeia de caracteres

    debugpoints.logpoint Lista de todos os logpoints no script, apresentados como pares de chave-valor. A chave é o número da linha do logpoint. O valor é um objeto que contém o sys_id e o texto do logpoint.
    "logpoint": {
      <line_number>: {Object}
    }

    Tipo de dados: objeto

    debugpoints.logpoint.<line_number> Número de linha para o logpoint.
    <line_number>: {
      "evaluationString": "String"
      "sysId": "String"
    }

    Tipo de dados: objeto

    debugpoints.logpoint.<line_number> .evaluationString Texto do logpoint. Contém a mensagem que está sendo registrada.

    Tipo de dados: cadeia de caracteres

    debugpoints.logpoint.<line_number> .sysId Sys_id do logpoint.

    Tipo de dados: cadeia de caracteres

    chave Objeto que fornece detalhes sobre o script que está sendo depurado.
    "key": {
      "scriptField": "String"
      "scriptId": "String"
      "scriptType": "String"
      "value": "String"
    }

    Tipo de dados: objeto

    key.scriptField Nome do campo que contém o script.

    Tipo de dados: cadeia de caracteres

    key.scriptId Sys_id do script.

    Tipo de dados: cadeia de caracteres

    key.scriptType Nome da tabela que contém o script.

    Tipo de dados: cadeia de caracteres

    chave.valor Os parâmetros de caminho usados para fazer a solicitação. Listado na seguinte ordem.
    • tableName
    • sysId
    • fieldName

    Tipo de dados: cadeia de caracteres

    nome Nome do script.

    Tipo de dados: cadeia de caracteres

    script Texto que exibe o código do script.

    Tipo de dados: cadeia de caracteres

    Exemplo de solicitação cURL

    Solicitação de cURL

    Recupera uma lista de logpoints e pontos de interrupção para um script do lado do servidor. Este script tem um ponto de log na linha 2, um ponto de interrupção na linha 11 e um ponto de interrupção condicional na linha 18.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/script/sys_script_include/d65f78c40a0a0b6900196656f35913d3/script" \
    --request GET \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --user 'username':'password'
    {
      "result": {
        "canWrite": true,
        "debugpoints": {
          "LOGPOINT": {
            "2": {
              "evaluationString": "A log message",
              "sysId": "ba28b0fa739310101c233096fbf6a75e"
            }
          },
          "BREAKPOINT": {
            "11": {
              "evaluationString": "",
              "sysId": "dc5f5bf341256010f877587fbdf5ec1d"
            },
            "18": {
              "evaluationString": "a == true",
              "sysId": "3d4f5bf341256010f877587bdf5ecf6"
            }
          }
        },
        "script": "// script code",
        "name": "AbstractAjaxProcessor",
        "key": {
          "scriptType": "sys_script_include",
          "scriptId": "d65f78c40a0a0b6900196656f35913d3",
          "scriptField": "script",
          "value": "sys_script_include.d65f78c40a0a0b6900196656f35913d3.script"
        }
      }
    }

    Depurador de script - POST js/debugpoints/process

    Adicione, atualize ou remova pontos de interrupção ou logpoints em um script do lado do servidor, como uma regra de negócio ou inclusão de script. Processe vários pontos de interrupção ou logpoints por vez.

    Formato da URL

    URL padrão: /api/now/js/debugpoints/process

    Parâmetros de solicitação compatíveis

    Tabela 7. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 8. Parâmetros de consulta
    Nome Descrição
    buscar tudo Quando verdadeiro, retorna uma lista de todos os pontos de interrupção ou logpoints adicionados ou atualizados pelo usuário.

    Tipo de dados: booliano

    Padrão: falso

    buscarTodosFiltros

    Retorna uma lista filtrada de todos os pontos de interrupção ou logpoints adicionados ou atualizados pelo usuário.

    Valores válidos:
    • debugpointType. Defina como ponto de interrupção ou ponto de log.
    • scriptId. Defina como o sys_id do script no qual pesquisar pontos de depuração.
    • escopo. Defina como o nome do escopo no qual pesquisar pontos de depuração.

    Use o símbolo de acento circunflexo (^) como separador para várias propriedades. Por exemplo, fetchAllFilter=debugpointType=logpoint^scope=MyApp

    Tipo de dados: cadeia de caracteres

    Tabela 9. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    debugpointTipo

    Obrigatório. Tipo de ponto de depuração a ser adicionado, excluído ou atualizado.

    Valores válidos:
    • ponto de interrupção
    • ponto de log

    Tipo de dados: cadeia de caracteres

    avaliaçãoString

    Texto para um logpoint ou ponto de interrupção condicional.

    Para um logpoint, o evaluationString é a mensagem de log.

    Para um ponto de interrupção condicional, o evaluationString é a condição. Por exemplo, se você estiver fazendo um loop em uma lista de IDs de usuário e quiser que o depurador seja pausado somente quando o ID de usuário for 38493, você poderá adicionar um ponto de interrupção condicional dentro do loop com userID == 38493 como a condição. O depurador só fará uma pausa neste ponto de interrupção quando a condição for verdadeira.

    Se o ponto de interrupção não for um ponto de interrupção condicional, o evaluationString será uma cadeia de caracteres vazia.

    Tipo de dados: cadeia de caracteres

    fieldName Obrigatório. Nome do campo que contém o conteúdo do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    LineNumber Número de linha no script do lado do servidor que especifica onde adicionar, excluir ou atualizar o ponto de interrupção ou o ponto de log.

    Tipo de dados: número

    operação Obrigatório. Operação a ser executada para o ponto de interrupção ou logpoint.
    Valores válidos:
    • adicionar
    • excluir
    • atualizar

    Tipo de dados: cadeia de caracteres

    scriptId Obrigatório. Sys_id do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    tableName Obrigatório. Nome da tabela que contém o script do lado do servidor, como sys_script ou sys_script_include.

    Tipo de dados: cadeia de caracteres

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos de REST API compatíveis.

    Tabela 10. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tipo de conteúdo Formato de dados do corpo da solicitação. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Tabela 11. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de códigos de status possíveis usados na REST API, consulte Códigos de resposta HTTP de REST API.

    Tabela 12. Códigos de status
    Código do status Descrição
    200 Bem-sucedido. A solicitação foi processada com sucesso.

    Parâmetros do corpo da resposta (JSON ou XML)

    Nome Descrição
    requestDebugpoints Lista dos pontos de interrupção e logpoints solicitados. Apresentado como uma matriz de objetos.
    "requestedDebugpoints": [
      {
        "scriptId": "String",
        "evaluationString": "String",
        "operation": "String",
        "tableName": "String",
        "fieldName": "String",
        "status": "String",
        "lineNumber": Number,
        "debugpointType": "String"
      }
    ]

    Tipo de dados: matriz

    requestDebugpoints.ScriptId Sys_id do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    requestDebugpoints.evaluationString Texto adicionado para um logpoint ou ponto de interrupção condicional. Para um logpoint, o evaluationString é a mensagem de log. Para um ponto de interrupção condicional, o evaluationString é a condição.

    Tipo de dados: cadeia de caracteres

    pontosDeDepuraçãoSolicitados.operação

    Operação realizada para o ponto de interrupção ou logpoint.

    Valores possíveis:
    • adicionar
    • excluir
    • atualizar

    Tipo de dados: cadeia de caracteres

    requestDebugpoints.tableName Nome da tabela que contém o script do lado do servidor, como sys_script ou sys_script_include.

    Tipo de dados: cadeia de caracteres

    requestDebugpoints.fieldNome Nome do campo que contém o conteúdo do script do lado do servidor.

    Tipo de dados: cadeia de caracteres

    pontosDeDepuraçãoSolicitados.status

    Resultado da instrução para adicionar, excluir ou atualizar um ponto de interrupção ou logpoint específico.

    Valores possíveis:
    • falha
    • ignorada
    • êxito
    Uma solicitação para adicionar, excluir ou atualizar um ponto de depuração é ignorada nas seguintes situações:
    • Ele solicita a exclusão de um ponto de interrupção ou logpoint que não existe.
    • Ele solicita a adição de um ponto de interrupção ou logpoint idêntico a um que já existe.

    Tipo de dados: cadeia de caracteres

    requestDebugpoints.lineNumber Número de linha no script do lado do servidor que especifica onde o ponto de interrupção ou ponto de log foi adicionado, excluído ou atualizado.

    Tipo de dados: número

    requestDebugpoints.debugpointType

    Tipo de ponto de depuração adicionado, excluído ou atualizado.

    Valores possíveis:
    • ponto de interrupção
    • ponto de log

    Tipo de dados: cadeia de caracteres

    status Resultado da ação geral. O código de status da chamada HTTP.

    Tipo de dados: número

    Solicitação de cURL

    Este exemplo adiciona um ponto de interrupção condicional na linha 12 do script.

    curl "https://instance.servicenow.com/api/now/js/debugpoints/process" \
    --request POST \
    --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --data “[
    {
    \"tableName\": \"sys_script_include\",
    \"scriptId\": \"d65f78c40a0a0b6900196656f35913d3\",
    \"fieldname\": \"script\",
    \"lineNumber\": 12,
    \"evaluationString\": \"a == false\",
    \"debugpointType\": \"breakpoint\",
    \"operation\": \"add\"
    }
    ]” \
    --user 'username':'password'
    {
      "result": {
        "requestedDebugpoints": [
          {
            "scriptId": "d65f78c40a0a0b6900196656f35913d3",
            "evaluationString": "a == false",
            "operation": "add",
            "tableName": "sys_script_include",
            "fieldName": "script",
            "status": "success",
            "lineNumber": 12,
            "debugpointType": "breakpoint"
          }
        ],
        "status": 200
      }
    }