Ir para o conteúdo

API Manager Log Service API (Beta)

Introdução

Como alternativa ao download de um arquivo de log da API clicando em Baixar como CSV na página de Logs da API, é possível recuperar um arquivo de log da API usando uma API REST. Isso requer o uso de utilitários de linha de comando, como curl, ou aplicativos como Postman.

Para usar a API Manager Log Service API (Beta), após habilitar os logs da API para a API Manager API, siga estas etapas:

  1. Recupere um token de autenticação usando a API User Service Controller. Este token é necessário para usar a API Manager Log Service API (Beta).

  2. Recupere o arquivo de log usando a API Manager Log Service API (Beta).

Recuperar um token de autenticação

Recuperar um token de autenticação requer o uso da API User Service Controller.

Importante

Se sua organização Harmony tiver a TFA habilitada, esta solicitação falhará. Recuperar o token de autenticação requer duas solicitações diferentes.

Um exemplo de solicitação mostrando o login na região NA e a recuperação do token de autorização:

Usando curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!"
}'

URL Base

A URL base depende da região em que a organização está localizada:

Região URL Base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login
APAC https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login

Cabeçalhos

Esses cabeçalhos são obrigatórios:

Cabeçalho Obrigatório Exemplo Descrição
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.

Parâmetros do corpo

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro Obrigatório Obrigatório Tipo Exemplo Descrição
email Obrigatório String alice@jbexample.com Nome de usuário do Harmony (endereço de email) com um papel com permissão de Admin na organização
password Obrigatório String Jitterbit4Ever! Senha do usuário do Harmony

Corpo da resposta

O corpo da resposta retornada contém uma lista das organizações com as quais o usuário está associado, além do token de autenticação ("authenticationToken"). Este token é necessário para a autorização subsequente com a API Manager Log Service API (Beta). Neste exemplo, o token de autenticação é "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4". O ID da organização é mostrado como "123456" para a primeira organização à qual este usuário pertence. Um exemplo da resposta:

Response Body
{
  "status": true,
  "operation": "User login",
  "authenticationToken": "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4",
  "serverUrl": "https://na-east.jitterbit.com",
  "cloudAppsUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [
    {
      "orgId": "123456",
      "orgName": "JB Example Company",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    },
    {
      "orgId": "20970",
      "orgName": "example@jbexample.com",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    }
  ],
  "defaultOrgId": "123456",
  "sessionTimeoutInSeconds": 14400
}

Recuperar um token de autenticação com TFA habilitado

Se a organização do usuário no Harmony tiver a autenticação de dois fatores (TFA) habilitada, a recuperação do token de autenticação requer duas solicitações usando a API do User Service Controller:

  1. Recuperar um código TFA

  2. Usar o código TFA para recuperar um token de autenticação

Recuperar um código TFA

Um código TFA válido é necessário para recuperar um token de autenticação quando a TFA está habilitada. Um exemplo de solicitação mostrando o login na região NA e a solicitação de um código TFA:

Using curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!",
    "deviceId": "abcd"
}'
URL Base

A URL base depende da região em que a organização está localizada:

Região URL Base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login
APAC https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login
Cabeçalhos

Esses cabeçalhos são necessários:

Cabeçalho Necessário Exemplo Descrição
Content-Type Necessário 'Content-Type: application/json' Indica o formato que será enviado na solicitação.
Parâmetros do corpo

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro Obrigatório Necessário Tipo Exemplo Descrição
email Necessário String alice@jbexample.com Nome de usuário do Harmony (endereço de email) com um papel com permissão de Admin na organização
password Necessário String Jitterbit4Ever! Senha do usuário do Harmony
deviceId Necessário String abcd Identificador que será usado para confirmar o código TFA na próxima solicitação
Corpo da resposta

O corpo da resposta retornada contém uma mensagem de erro indicando que um código TFA foi enviado para o endereço de email do usuário.

Corpo da Resposta
{
  "status": false,
  "operation": "User login",
  "errorCode": "VALIDATE_TFA_LOGIN_EMAIL",
  "errorMessage": "Validate your login with authentication code. An email from Jitterbit with the code was sent to you.",
  "authenticationToken": null,
  "serverUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [],
  "defaultOrgId": null
}

Use o código TFA para recuperar um token de autenticação

O código TFA enviado para o endereço de email do usuário pode agora ser usado na segunda solicitação para recuperar o token de autenticação. Um exemplo de solicitação mostrando o login na região NA com um código TFA e a recuperação do token de autorização:

Usando curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login/tfacode' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "alice@jbexample.com",
    "password": "Jitterbit4Ever!",
    "code": "112233",
    "deviceId": "abcd"
}'
URL base

A URL base depende da região em que a organização está localizada:

Região URL Base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/user/login/tfacode
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/user/login/tfacode
APAC https://apac.jitterbit.com/jitterbit-cloud-restful-service/user/login/tfacode
Cabeçalhos

Esses cabeçalhos são obrigatórios:

Cabeçalho Obrigatório Exemplo Descrição
Content-Type Obrigatório 'Content-Type: application/json' Indica o formato que será enviado na solicitação.
Parâmetros do corpo

Esses parâmetros obrigatórios são passados no corpo da solicitação:

Parâmetro Obrigatório Obrigatório Tipo Exemplo Descrição
email Obrigatório String alice@jbexample.com Nome de usuário do Harmony (endereço de email) com um papel com permissão de Admin na organização
password Obrigatório String Jitterbit4Ever! Senha do usuário do Harmony
code Obrigatório String 112233 Código TFA enviado para o email do usuário do Harmony
deviceId Obrigatório String abcd Identificador enviado para gerar o código TFA na solicitação anterior
Corpo da resposta

O corpo da resposta retornada contém uma lista das organizações com as quais o usuário está associado, além do token de autenticação ("authenticationToken"). Este token é necessário para a autorização subsequente com a API do Serviço de Log do Gerenciador de API (Beta). Neste exemplo, o token de autenticação é "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4". O ID da organização é mostrado como "123456" para a primeira organização à qual este usuário pertence. Um exemplo da resposta:

Corpo da Resposta
{
  "status": true,
  "operation": "User login",
  "authenticationToken": "1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4",
  "serverUrl": "https://na-east.jitterbit.com",
  "cloudAppsUrl": "https://na-east.jitterbit.com",
  "orgAttrs": [
    {
      "orgId": "123456",
      "orgName": "JB Example Company",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    },
    {
      "orgId": "654321",
      "orgName": "example@jbexample.com",
      "orgZoneUrl": "https://na-east.jitterbit.com"
    }
  ],
  "defaultOrgId": "123456",
  "sessionTimeoutInSeconds": 14400
}

Recuperar logs da API de forma assíncrona (Beta)

Uma vez que você tenha o token de autenticação e o ID da organização, é possível recuperar logs da API de forma assíncrona usando a API do Serviço de Log do Gerenciador de API (Beta). Um exemplo mostrando a recuperação de todos os registros de 20 de janeiro de 2023 a 20 de janeiro de 2024:

Usando curl
curl --location --request PUT 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/api/analytics/debuglogs-async' \
--header 'Content-Type: application/json' --header 'Accept: application/json' --header 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4' \
--data-raw '{
    "ascendSort": false,
    "retrieveLogMessages": false,
    "timeRangeFrom": "01/20/2023 01:01:00 +0100",
    "timeRangeTo": "01/20/2024 01:01:00 +0100",
    "clientTimeZone": "Europe/Berlin",
    "queryString": "responsetime>5; sourceip=14.141%",
    "orgId": "123456",
    "csvFormat": true
}'

URL Base

A URL base depende da região em que a organização está localizada:

Região URL Base
NA https://na-east.jitterbit.com/jitterbit-cloud-restful-service/api/analytics/debuglogs-async
EMEA https://emea-west.jitterbit.com/jitterbit-cloud-restful-service/api/analytics/debuglogs-async
APAC https://apac.jitterbit.com/jitterbit-cloud-restful-service/api/analytics/debuglogs-async

Cabeçalhos

Esses cabeçalhos podem ser usados na solicitação:

Cabeçalho Necessário Exemplo Descrição
Content-Type Necessário 'Content-Type: application/json' Indica o formato que será enviado na solicitação.
Accept Necessário 'Accept: application/json' Indica o formato que será aceito na resposta.
authToken Necessário 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4' Passa o token de autorização (authenticationToken) retornado pela API do Controlador de Serviço de Usuário.

Parâmetros do corpo

Esses parâmetros podem ser passados no corpo da solicitação:

Chave Obrigatório Tipo Exemplo Descrição
ascendSort Opcional Boolean false A ordem de classificação das entradas de log, sendo true ou false. Por padrão, esse valor é false.
retrieveLogMessages Opcional String false A visibilidade das mensagens nas entradas de log recuperadas, sendo true ou false. Por padrão, esse valor é false.
timeRangeFrom Obrigatório String 01/20/2023 01:01:00 +0100 A data e hora de início para filtrar as entradas de log em um intervalo de tempo.
timeRangeTo Obrigatório String 01/20/2024 01:01:00 +0100 A data e hora de término para filtrar as entradas de log em um intervalo de tempo.
clientTimeZone Opcional String Europe/Berlin O identificador de fuso horário para resolver os horários. Para uma lista de identificadores válidos, consulte a lista de fusos horários do banco de dados tz. Por padrão, esse valor é UTC.
queryString Opcional String responsetime>5; sourceip=14.141% A string de consulta para filtrar as entradas de log com base na condição fornecida. As condições podem ser uma lista de comparações entre valores de coluna e valores conhecidos, cada uma delimitada por um ponto e vírgula (;). Os nomes de coluna válidos incluem time, apiname, envname, authprofile, requestid, requestmethod, requesturi, responsetime, sourceip, sourceapp, statuscode e message. Os operadores de comparação válidos incluem =, <>, !=, >, <, >= e <=.
orgId Obrigatório String 123456 Seu ID de organização do Harmony. A organização deve estar localizada na região que corresponde à URL base.
csvFormat Opcional Boolean true O formato da saída, sendo true para CSV ou false para JSON. Por padrão, esse valor é true.

Corpo da resposta

Se bem-sucedido, o corpo da resposta retornada contém uma chave de referência para rastreamento e download do arquivo de log da API com base nos parâmetros fornecidos:

Corpo da Resposta
{
    "key": "debug-log-E8D47FE1F172D3EE46C620791E614B78D111CE624485D2E1B3D482370690DC40",
    "status": "COMPLETE"
}

A chave de referência pode ser fornecida como parte da seguinte chamada da API para verificar o status do arquivo de log ou para baixá-lo se o status for COMPLETE:

Usando curl
curl --location --request GET 'https://na-east.jitterbit.com/jitterbit-cloud-restful-service/api/analytics/log-async/{orgId}/{key}' \
--header 'Content-Type: application/json' --header 'Accept: application/json' --header 'authToken: 1_70dfe7f7-1d47-4ad5-be5d-bc4a222dd2g4'

Os status possíveis incluem:

  • RECEIVED: Harmony recebeu uma solicitação válida para gerar o arquivo de log. O status mudará para PROCESSING quando a solicitação estiver sendo executada.
  • PROCESSING: O arquivo de log está sendo gerado. O status mudará para COMPLETE quando a geração do arquivo estiver completa.
  • COMPLETE: O arquivo de log está pronto para ser baixado usando a API log-async acima.
  • INVALID: A chave de referência não pôde ser encontrada. Este status é relatado apenas se uma chave de referência desconhecida ou malformada for fornecida à API log-async.
  • ERROR: A chave de referência foi encontrada após a API terminar de tentar gerar o arquivo de log, mas um erro foi relatado. Uma mensagem de erro também será retornada detalhando o motivo da falha na geração.
  • NO_DATA: Os parâmetros de filtragem que consultam dados na chamada original da API retornaram 0 resultados.

Importante

O arquivo gerado será salvo por 24 horas. A chave de referência será salva por 23 horas. A mesma solicitação exata não gerará mais arquivos durante esse período, a menos que a solicitação tenha retornado um status ERROR ou NO_DATA.

Cuidado

No caso de ocorrer um erro durante os status RECEIVED ou PROCESSING, a solicitação será bloqueada até que a chave de referência expire. Alterar qualquer parâmetro de uma solicitação a tornará distinta, permitindo solicitações alternativas se esse problema for encontrado.