Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Totvs custom tabs box
tabsMenu,Navegação,Informações Técnicas
idsmenu,naveg,tech
Totvs custom tabs box items
defaultno
referenciamenu


Menu


Totvs custom tabs box items
defaultyes
referencianaveg

Navegação e Opções em tela


Navegação

Totvs custom tabs box items
defaultno
referenciatech

Informações Técnicas da API


Especificação dos endpoints e seus contratos.

Para análise rápida, importe o postman:

View file
nameLogger.postman_collection.json
height150

Site postman: Postman API Platform | Sign Up for Free


Fora feito um mock da api usando a tool mockoon, segue o enviroment:

É possível abrir esse enviroment e utilizar todo o mock feito.

View file
namelogger.json
height150

Site mockoon: Create mock APIs in seconds with Mockoon


Deck of Cards
idLogger
Card
idLoggerTiposIntegração
labelTipos de integração e tipos logs

Objetivo: Busca tipos de integração e tipos de logs

Esses endpoint's serão usado para o preenchimento dos select box 'Integração' e 'Tipo de log'

Recomenda-se o backend realizar cache desses endpoints, devida suas características invariantes

Tipo de requisição: GET

Endpoints: api/rh/logs/v1/integrations/types e  api/rh/logs/v1/integrations/logTypes


Estrutura de Retorno:

Campo

Tipo

hasNext

boolean

items

array de objetos detalhado abaixo


Para o array de items, a estrutura do objeto de retorno no json deve conter obrigatoriamente os campos abaixo.

Campo

Tipo

id

int

description

string


Exemplos de Requisição:

GET /api/rh/logs/v1/integrations/types

Expandir
titleExemplo de retorno

{
  "hasNext": false,
  "items": [
    {
      "id": 1,
      "description": "TAF"
    },
    {
      "id": 2,
      "description": "TSS"
    },
    {
      "id": 3,
      "description": "Feedz"
    }
  ]
}

GET /api/rh/logs/v1/integrations/logTypes

Expandir
titleExemplo de retorno

{
  "hasNext": false,
  "items": [
    {
      "id": 1,
      "description": "Trace"
    },
    {
      "id": 2,
      "description": "Error"
    }
  ]
}

Card
idLoggerProcessesList
labelListagem de processos

Objetivo: Obter os processos de uma determinada integração


Tipo de requisição: GET

Endpoint: /api/rh/logs/v1/integrations/processes

Query Params:

Campo

Descrição

Tipo

Obrigatório

Exemplo

idIntegration

Equivale ai items.id retornado em /api/rh/logs/v1/integrations/types

inteiro

sim

1


Estrutura de Retorno:

Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo.

Campo

Tipo

hasNext

boolean

items

array de objetos detalhado abaixo

Para o array de items, a estrutura do objeto de retorno no json deve conter obrigatoriamente os campos abaixo.

Campo

Tipo

id

int

description

string

Exemplo de Requisição:

GET /api/rh/logs/v1/integrations/processes?idIntegration=1

Expandir
titleExemplo de retorno

{
  "hasNext": false,
  "items": [
    {
      "id": 1,
      "description": "Status"
    },
    {
      "id": 2,
      "description": "Evento xpto"
    }
  ]
}

Card
idLoggerActive
labelAtivar log

Objetivo: Ativar ou desligar um log.

Tipo de requisição: POST

Endpoint: /api/rh/logs/v1/integrations

Estrutura do corpo da requisição (Body)

Campo

Descrição

Tipo

Obrigatório

Exemplo

active

Flag para ativar ou desativar o log.

boolean

Sim

true

companyId

Company id injetado na session storage do frontEnd

int

Sim

1

idIntegration

Identificação a integração

int

Sim

1

idLogType

Identificação do tipo de log que será ativado

int

Sim

1

idProcess

Identificação do processo da integração

int

Não

1


POST /api/rh/logs/v1/integrations

Expandir
titleExemplo body request

{
    "active": true,
    "companyId": 1,
    "idIntegration": 1,
    "idLogType": 1,
    "idProcess": 5
}

Caso não seja selecionado o proceso, o front-end enviará o valor de idProcess como 0, valor default do inteiro. Portanto, se faz necessário considerar 0 como valor não informado.


Estrutura de Retorno:

Para o retorno, utilizamos a forma abaixo.

Campo

Descrição

Tipo

timer

'Cronômetro' representado em milissegundos, cujo valor irá determinar o tempo máximo que o front-end, aguardará a resposta da primeira página.

int

interval

Intervalo entre requisições em milissegundos, que serão feitos pelo front-end para verificar o retorno da primeira página.

int


Exemplo de Retorno:

Expandir
titleExemplo

{
    "timer": 60000,
    "interval": 2000
}



Card
idLoggerSummaryList
labelListagem resumida dos logs

Objetivo: Obtenção paginada dos logs gerados pela aplicação após sua ativação.

O front end, após a chamada do endpoint que faz a ativação do log, se o mesmo fora para ativar, entrará em modo de carregamento aguardando o retorno da primeira página contendo os primeiros logs.

Mesmo que o backend retorne uma lista vazia e com a flag hasNext igual a false, a tela continuará tentando obter resultados até seu ciclo de espera terminar ou o backend retornar uma lista de itens em 'items'

Motivo: Entende-se que nem sempre logo após a ativação será captado algum log, portanto se faz necessário esperar por até que haja estímulo para captação do log.

O ciclo de espera do front-end é terminado pelos campos 'timer' e 'interval' retornados na requisição da ativação, portanto cada linha poderá configurar da melhor forma que entender, tanto o tempo de espera, quando a frequência de validação.


Tipo de requisição: GET

Endpoints: /api/rh/logs/v1/integrations

QueryParams:

Campo

Tipo

Observação

Obrigatorio

Exemplo

companyId

int


Sim

1

idIntegration

int


Sim

1

idLogType

int


Sim

1

idProcess

int


Não

0

startDateTime

dateTime

Formato yyyy-mm-ddThh:mm:ss, usado para filtrar a partir de qual data hora se deseja obter a listagem, o filtro se aplica no campo 'dateTime'

Não

2024-05-10T09:53:37

page

int


Sim

1

pageSize

int


Sim

30

Exemplo: /api/rh/logs/v1/integrations?companyId=1&idIntegration=0&idLogType=0&idProcess=1&startDateTime=2024-05-10T09:53:37&page=1&pageSize=30

Estrutura de Retorno:

Campo

Tipo

hasNext

boolean

items

array de objetos detalhado abaixo


Para o array de items, a estrutura do objeto de retorno no json deve conter obrigatoriamente os campos abaixo.

Campo

Tipo

id

string

dateTime

Data hora formato yyyy-mm-ddThh:mm:ss

isError

boolean

statusCode

string

verb

string

process

string

url

string

Expandir
titleExemplo

{
    "hasNext": true,
    "items": [
        {
            "id": "11620630817",
            "dateTime": "2024-05-10T09:53:37",
            "isError": false,
            "statusCode": "200",
            "verb": "GET",
            "process": "",
            "url": "http://localhost:8051/api/something/to/do?id=80982&scope=global"
        },
        {
            "id": "11081228397",
            "dateTime": "2024-05-11T10:15:45",
            "isError": true,
            "statusCode": "404",
            "verb": "POST",
            "process": "",
            "url": "http://localhost:8051/api/another/endpoint"
        }
    ]
}



Card
idLoggerDetails
labelDetalhes de um log

Objetivo: Detalhes de um log, a partir do seu id.

Tipo de requisição: GET

Endpoint: /api/rh/logs/v1/integrations/details/:id

PathParam:

Campo

Tipo

Observação

Obrigatorio

Exemplo

id

string

Mesmo Id retornado em 'Listagem resumida dos logs'

Sim

"11620630817"

Exemplo: /api/rh/logs/v1/integrations/details/11620630817

Estrutura de Retorno:

Campo

Tipo

id

string

dateTime

Data hora formato yyyy-mm-ddThh:mm:ss

isError

boolean

statusCode

string

verb

string

process

string

url

string

comments

string

request

objeto

response

objeto

Para os objetos request / response, estrutura:

Campo

Tipo

header

array de objetos

body

objeto


Para array de objetos campo header:

Campo

Tipo

key

string

value

string


Para objeto campo body:

Campo

Tipo

Observações

type

string

valor suportado nesta primeira versão : "raw"

format

string

valores suportados : "json" / "xml" ou "txt"

content

string

atenção se trata de uma string, portanto ao colocar um json ou xml deve-se retornar corretamente formatado para tal, veja os exemplos.



Expandir
titleExemplo retorno com json

{
    "id": "11620630817",
    "dateTime": "2024-05-10T09:53:37",
    "isError": true,
    "statusCode": "200",
    "verb": "GET",
    "url": "http://localhost:8051/api/something/to/do?id=80982&scope=global",
    "server": "10.29.0.0",
    "process": "AtualizarStatusEvento",
    "comments": "algum comentário útil",
    "request": {
        "header": [
            {
                "key": "User-Agent",
                "value": "PostmanRuntime/7.37.3"
            },
            {
                "key": "Connection",
                "value": "keep-alive"
            }
        ],
        "body": {
            "type": "raw",
            "format": "json",
            "content": "{}"
        }
    },
    "response": {
        "header": [],
        "body": {
            "type": "raw",
            "content": "{\"example\":\"value\"}"
        }
    }
}

Expandir
titleExemplo retorno com xml

{
    "id": "116351206011",
    "dateTime": "2024-05-10T09:53:37",
    "isError": false,
    "statusCode": "200",
    "verb": "POST",
    "url": "http://spon010119801:8051/wsDataServer/IwsDataServer",
    "server": "20.10.0.0",
    "comments": "algum comentário útil",
    "process": "",
    "request": {
        "header": [
            {
                "key": "Content-Type",
                "value": "text/xml; charset=utf-8"
            },
            {
                "key": "SOAPAction",
                "value": "http://www.totvs.com/IwsDataServer/ReadRecord"
            },
            {
                "key": "Authorization",
                "value": "Basic bWVzdHJlOnRvdHZz"
            }
        ],
        "body": {
            "type": "raw",
            "format": "xml",
            "content": "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tot=\"http://www.totvs.com/\">\r\n   <soapenv:Header/>\r\n   <soapenv:Body>\r\n      <tot:ReadRecord>\r\n         <!--Optional:-->\r\n         <tot:DataServerName>FopFuncData</tot:DataServerName>\r\n         <!--Optional:-->\r\n         <tot:PrimaryKey>1;00001</tot:PrimaryKey>\r\n         <!--Optional:-->\r\n         <tot:Contexto>codcoligada=1;codusuario=mestre;codsistema=p</tot:Contexto>\r\n      </tot:ReadRecord>\r\n   </soapenv:Body>\r\n</soapenv:Envelope>"
        }
    },
    "response": {
        "header": [],
        "body": {
            "type": "raw",
            "content": ""
        }
    }
}

Card
idLoggerDetailsList
labelDetalhes de vários logs

Objetivo: Detalhes de vários logs dado um conjunto de ids

Tipo de requisição: GET

Endpoint: /api/rh/logs/v1/integrations/details

QueryParam:

Campo

Tipo

Observação

Obrigatorio

Exemplo

ids

string

Uma string contendo vários logs separados por vírgula ,

Sim

"11620630817,11620630812,11620630812"

Exemplo: /api/rh/logs/v1/integrations/details?ids=11620630817,11081228397,11628122137,116351206011

Estrutura de Retorno:

Campo

Tipo

hasNext

boolean

items

array de objetos detalhado abaixo


Items - cada objeto terá o mesmo retorno especificado em 'Detalhes de um log'

Expandir
titleExemplo retorno

{
    "hasNext": false,
    "items": [
        {
            "id": "11620630817",
            "dateTime": "2024-05-10T09:53:37",
            "isError": true,
            "statusCode": "200",
            "verb": "GET",
            "url": "http://localhost:8051/api/something/to/do?id=80982&scope=global",
            "server": "11.29.0.0",
            "comments": "algum comentário útil",
            "process": "",
            "request": {
                "header": [
                    {
                        "key": "User-Agent",
                        "value": "PostmanRuntime/7.37.3"
                    },
                    {
                        "key": "Connection",
                        "value": "keep-alive"
                    }
                ],
                "body": {
                    "type": "raw",
                    "format": "json",
                    "content": "{}"
                }
            },
            "response": {
                "header": [],
                "body": {
                    "type": "raw",
                    "content": "{}"
                }
            }
        },
        {
            "id": "11081228397",
            "dateTime": "2024-05-10T09:53:37",
            "isError": false,
            "statusCode": "200",
            "verb": "GET",
            "url": "http://localhost:8051/api/framework/v2/companies/",
            "server": "11.10.0.0",
            "comments": "algum comentário útil",
            "process": "",
            "request": {
                "header": [
                    {
                        "key": "Authorization",
                        "value": "Basic bWVzdHJlOnRvdHZz"
                    }
                ],
                "body": {
                    "type": "raw",
                    "format": "json",
                    "content": "{}"
                }
            },
            "response": {
                "header": [],
                "body": {
                    "type": "raw",
                    "content": "{\"hasNext\":false,\"items\":[{\"id\":1,\"nomeFantasia\":\"TOTVS SA\",\"federalId\":\"21.867.387/0001-58\",\"name\":\"TOTVS SA\",\"phoneNumber\":\"31-21229000\",\"email\":\"silvana@totvs.com.br\",\"rua\":\"AVENIDA RAJA GABAGLIA\",\"numero\":\"2664\",\"complemento\":\"2º ANDAR\",\"bairro\":\"SANTA LÚCIA\",\"cidade\":\"Belo Horizonte\",\"estado\":\"MG\",\"pais\":\"Brasil\",\"cep\":\"30350-540\"},{\"id\":6,\"nomeFantasia\":\"INSTITUTO TOTVS DE ENSINO SA\",\"federalId\":\"25.578.337/0001-01\",\"name\":\"INSTITUTO TOTVS DE ENSINO SA\",\"phoneNumber\":\"31-21229000\",\"email\":\"masterkeyweb@totvs.com.br\",\"rua\":\"AVENIDA RAJA GABAGLIA\",\"numero\":\"2664\",\"complemento\":\"2º ANDAR\",\"bairro\":\"SANTA LÚCIA\",\"cidade\":\"BELO HORIZONTE\",\"estado\":\"MG\",\"pais\":\"BRASIL\",\"cep\":\"30350-540\"},{\"id\":7,\"nomeFantasia\":\"INSTITUTO TOTVS DE ENSINO SUPERIOR SA\",\"federalId\":\"05.295.401/0001-30\",\"name\":\"INSTITUTO TOTVS DE ENSINO SUPERIOR SA\",\"phoneNumber\":\"31-21229000\",\"email\":\"masterkeyweb@totvs.com.br\",\"rua\":\"AVENIDA RAJA GABAGLIA\",\"numero\":\"2664\",\"complemento\":\"2º ANDAR\",\"bairro\":\"SANTA LÚCIA\",\"cidade\":\"BELO HORIZONTE\",\"estado\":\"MG\",\"pais\":\"BRASIL\",\"cep\":\"30350-540\"}]}"
                }
            }
        },
        {
            "id": "11628122137",
            "dateTime": "2024-05-10T09:53:37",
            "isError": false,
            "statusCode": "200",
            "verb": "POST",
            "url": "http://localhost:8051/api/rh/esocial/v1/reportEsocialBaseConfer/",
            "server": "20.10.0.0",
            "comments": "algum comentário útil",
            "process": "",
            "request": {
                "header": [
                    {
                        "key": "CodUsuario",
                        "value": "mestre"
                    },
                    {
                        "key": "CodColigada",
                        "value": "1"
                    },
                    {
                        "key": "CodSistema",
                        "value": "p"
                    }
                ],
                "body": {
                    "type": "raw",
                    "format": "json",
                    "content": "{\"companyId\":1,\"lotationCode\":[],\"eSocialCategory\":[],\"cpfNumber\":[\"21170836097\"],\"eSocialRegistration\":[],\"paymentPeriod\":\"202304\",\"tribute\":\"3\",\"pageSize\":\"50\",\"differencesOnly\":false}"
                }
            },
            "response": {
                "header": [],
                "body": {
                    "type": "raw",
                    "content": ""
                }
            }
        },
        {
            "id": "116351206011",
            "dateTime": "2024-05-10T09:53:37",
            "isError": false,
            "statusCode": "200",
            "verb": "POST",
            "url": "http://spon010119801:8051/wsDataServer/IwsDataServer",
            "server": "20.10.0.0",
            "comments": "algum comentário útil",
            "process": "",
            "request": {
                "header": [
                    {
                        "key": "Content-Type",
                        "value": "text/xml; charset=utf-8"
                    },
                    {
                        "key": "SOAPAction",
                        "value": "http://www.totvs.com/IwsDataServer/ReadRecord"
                    },
                    {
                        "key": "Authorization",
                        "value": "Basic bWVzdHJlOnRvdHZz"
                    }
                ],
                "body": {
                    "type": "raw",
                    "format": "xml",
                    "content": "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tot=\"http://www.totvs.com/\">\r\n   <soapenv:Header/>\r\n   <soapenv:Body>\r\n      <tot:ReadRecord>\r\n         <!--Optional:-->\r\n         <tot:DataServerName>FopFuncData</tot:DataServerName>\r\n         <!--Optional:-->\r\n         <tot:PrimaryKey>1;00001</tot:PrimaryKey>\r\n         <!--Optional:-->\r\n         <tot:Contexto>codcoligada=1;codusuario=mestre;codsistema=p</tot:Contexto>\r\n      </tot:ReadRecord>\r\n   </soapenv:Body>\r\n</soapenv:Envelope>"
                }
            },
            "response": {
                "header": [],
                "body": {
                    "type": "raw",
                    "content": ""
                }
            }
        }
    ]
}