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:
-
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).
-
Se sua organização Harmony não tiver a autenticação de dois fatores (TFA) habilitada, recupere seu token de autenticação com uma solicitação de login padrão.
-
Se sua organização Harmony tiver a TFA habilitada, recuperar o token de autenticação requer duas solicitações:
-
-
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:
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:
{
"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:
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:
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.
{
"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:
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:
{
"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:
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:
{
"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:
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-asyncacima. - 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.