Totvs custom tabs box items |
---|
default | yes |
---|
referencia | prerequisitos |
---|
| Para implantação da API OAuth2 é necessário: - Sistema operacional 64 bits compatível (Linux/Microsoft Windows);
- Servidor web Apache 64 bits versão 2.4 (versão homologada: 2.4.47 e superiores);
- Servidor Redis versão 3.2 (versão homologada: 3.2.100 e superiores)
- 512 MB de memória RAM (mínimo);
- Processador 1,6 GHz (mínimo) e;
- 25 MB de espaço disponível em disco.
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | instalacao |
---|
| Totvs custom tabs box |
---|
tabs | Linux,Microsoft Windows |
---|
ids | linux,windows |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | linux |
---|
| A instalação da API em sistemas operacionais Linux depende, em todos os casos, da distribuição adotada. Em distribuições baseadas na distribuição Ubuntu, é necessário disponibilizar a API no diretório /usr/lib/apache2/modules. Além disso, é necessário criar os arquivos littera_v1.load e littera_v1.conf no diretório /etc/apache2/mods-available. O conteúdo do arquivo littera_v1.load é: Bloco de código |
---|
title | Arquivo littera_v1.load |
---|
| LoadModule littera_module_v1 modules/mod_littera_v1.so |
Já o conteúdo do arquivo littera_v1.conf é: Bloco de código |
---|
title | Arquivo littera_v1.conf |
---|
| <IfModule littera_module_v1>
<Location /api/tlra/littera/v1>
SetHandler mod_littera_v1-handler
</Location>
</IfModule> |
Configuradas as opções de carregamento da API através do servidor web Apache, é necessário criar o arquivo de configuração da API em /etc/littera_v1/database.conf conforme indicado abaixo: Bloco de código |
---|
# Este é o arquivo de configuração da API de autenticação OAuth2 do
# ecossistema Recintos Aduaneiros. Assim como o arquivo de configuração
# do Apache, as configurações aqui seguem o padrão "chave valor",
# sendo assim, tanto chaves quanto valores contém uma única palavra.
#
# Comentários podem ser feitos adicionando o símbolo # como primeiro
# caractere da linha. Isso também pode ser utilizado para desativar
# configurações.
# Definições de acesso ao banco de dados
#
# DriverID: Driver utilizado para a conexão com o banco de dados
# Server: Nome do servidor onde a instância do banco de dados está instalada
# Port: Porta pela qual o banco de dados pode ser acessado
# Name: Nome do banco de dados a ser acessado
# User: Nome do usuário de acesso ao banco de dados
# Password: Senha usada pelo usuário para acesso ao banco de dados (criptografada)
# Charset: Conjunto de caracteres utilizado pelo banco de dados
CharSet=UTF8
DriverID=PG
Database=littera
Hostname=localhost
Password=tlra@2024
Port=5432
Username=postgres |
Com as configurações efetivadas, é necessário ativar o módulo da API através do comando abaixo: $ sudo a2enmod littera_v1 E reiniciar o servidor web Apache através do comando abaixo: $ sudo service apache2 restart |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | windows |
---|
| Para implantação da API em servidores com sistema operacional Microsoft Windows é necessário disponibilizar seu módulo no diretório de módulos da instalação do servidor web Apache. Após a disponibilização do arquivo, é necessário editar o arquivo httpd.conf constante na instalação do servidor web Apache, acrescentando as linhas a seguir: Bloco de código |
---|
LoadModule littera_module_v1 modules/mod_littera_v1.so
<IfModule littera_module_v1>
<Location /api/tlra/littera/v1>
SetHandler mod_littera_v1-handler
</Location>
</IfModule> |
Como parte da configuração da API, é necessário criar seu arquivo de configuração em C:\TOTVS\etc\littera_v1\database.conf com o conteúdo abaixo: Bloco de código |
---|
# Este é o arquivo de configuração da API de autenticação OAuth2 do
# ecossistema Recintos Aduaneiros. Assim como o arquivo de configuração
# do Apache, as configurações aqui seguem o padrão "chave valor",
# sendo assim, tanto chaves quanto valores contém uma única palavra.
#
# Comentários podem ser feitos adicionando o símbolo # como primeiro
# caractere da linha. Isso também pode ser utilizado para desativar
# configurações.
# Definições de acesso ao banco de dados
#
# DriverID: Driver utilizado para a conexão com o banco de dados
# Server: Nome do servidor onde a instância do banco de dados está instalada
# Port: Porta pela qual o banco de dados pode ser acessado
# Name: Nome do banco de dados a ser acessado
# User: Nome do usuário de acesso ao banco de dados
# Password: Senha usada pelo usuário para acesso ao banco de dados (criptografada)
# Charset: Conjunto de caracteres utilizado pelo banco de dados
CharSet=UTF8
DriverID=PG
Database=littera
Hostname=localhost
Password=tlra@2024
Port=5432
Username=postgres |
Tendo efetivado a construção do arquivo de configuração da API, é necessário reiniciar o servidor web Apache através de seu gestor de serviços ou o gestor de serviços do sistema operacional. |
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | configuracao |
---|
| Para configuração da API de integração, é necessário editar o arquivo de configuração database.conf definindo seus parâmetros conforme abaixo: Conjunto | Parâmetro | Descrição | Valor padrão | Formato | Status |
---|
Banco de dados | CharSet | Conjunto de caracteres utilizado pelo banco de dados. | UTF8 | Nenhum | Implementado | Banco de dados | DriverID | Identificador do tipo de conexão com o banco de dados. | PG | Nenhum | Implementado | Banco de dados | Database | Nome do banco de dados a ser conectado. | littera | Nenhum | Implementado | Banco de dados | Hostname | Nome do servidor e instância de instalação do banco de dados. | localhost | Hostname/IPv4/IPv6 | Implementado | Banco de dados | Password | Senha do usuário de acesso ao banco de dados. | tlra@2024 | Nenhum | Implementado | Banco de dados | Port | Porta de conexão com o banco de dados. | 5432 | 1~65535 | Implementado | Banco de dados | Username | Nome do usuário de conexão com o banco de dados. | postgres | Nenhum | Implementado |
É importante notar que entre os parâmetros e seus valores deve haver apenas um sinal de igualdade "=". Se esta regra não for obedecida, a configuração adotará o valor padrão por considerar inválida a opção. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | utilizacao |
---|
| Totvs custom tabs box |
---|
tabs | Autenticação,Consumo |
---|
ids | autenticacao,consumo |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | autenticacao |
---|
| Totvs custom tabs box |
---|
tabs | Logon,Renovação |
---|
ids | logon,renovacao |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | logon |
---|
| Para efetivar a autenticação do usuário junto à API de integração, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo POST para a solicitação;
- Definir o Content Type da requisição como application/x-www-form-urlencoded;
- Adicionar ao corpo da requisição os campos:
- grant_type com valor password;
- username com o valor referente ao nome do usuário utilizado para o logon e;
- password com o valor referente à senha deste usuário;
- Enviar a requisição para o endpoint https://localhost/api/tlra/littera/v1/auth.
Como resultado de sucesso, a API devolverá um objeto JSON como o demonstrado abaixo: Bloco de código |
---|
language | js |
---|
title | Resposta para sucesso na autenticação |
---|
| {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJFeHBlZGlcdTAwRTdcdTAwRTNvIGRlIHBhY290ZXMiLCJleHAiOjE3MTQ1MDQyMjIsImlhdCI6MTcxNDI0NTAyMiwiaXNzIjoiTGl0dGVyYSIsInN1YiI6IjAxMjM0NTY3LTg5YWItY2RlZi0wMTIzLTQ1Njc4OWFiY2RlZiIsIm5ubSI6IkFkbWluaXN0cmFkb3IiLCJuYW0iOiJVc3VcdTAwRTFyaW8gQWRtaW5pc3RyYWRvciJ9.5dWQ0BJHaa9piHP6yoPv57VqI_dO66_MIr7fWt-SYVI",
"expires_in": 259200,
"token_type": "Basic",
"refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MTQ1MDUxMjIsImlzcyI6IkxpdHRlcmEiLCJuYmYiOjE3MTQ1MDM5MjIsInN1YiI6ImFkbWluIn0.xB79G_B6RsnBg_wzDDN-XFRdMzLoY7wAXP2o2Pv1Y4I"
} |
Em caso de falha na autenticação, a API retornará um erro 401 - Unauthorized. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | renovacao |
---|
| Para renovar a autenticação do usuário junto à API de integração, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo POST para a solicitação;
- Definir o Content Type da requisição como application/x-www-form-urlencoded;
- Adicionar ao corpo da requisição os campos:
- grant_type com valor refresh_token e;
- refresh_token com o valor referente ao token de renovação de autenticação obtido durante o processo de autenticação;
- Enviar a requisição para o endpoint https://localhost/api/tlra/littera/v1/auth.
Como resultado de sucesso, a API devolverá um objeto JSON como o demonstrado abaixo: Bloco de código |
---|
language | js |
---|
title | Resposta para sucesso na renovação |
---|
| {
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJFeHBlZGlcdTAwRTdcdTAwRTNvIGRlIHBhY290ZXMiLCJleHAiOjE3MTQ1MDQyMjIsImlhdCI6MTcxNDI0NTAyMiwiaXNzIjoiTGl0dGVyYSIsInN1YiI6IjAxMjM0NTY3LTg5YWItY2RlZi0wMTIzLTQ1Njc4OWFiY2RlZiIsIm5ubSI6IkFkbWluaXN0cmFkb3IiLCJuYW0iOiJVc3VcdTAwRTFyaW8gQWRtaW5pc3RyYWRvciJ9.5dWQ0BJHaa9piHP6yoPv57VqI_dO66_MIr7fWt-SYVI",
"expires_in": 259200,
"token_type": "Basic",
"refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MTQ1MDUxMjIsImlzcyI6IkxpdHRlcmEiLCJuYmYiOjE3MTQ1MDM5MjIsInN1YiI6ImFkbWluIn0.xB79G_B6RsnBg_wzDDN-XFRdMzLoY7wAXP2o2Pv1Y4I"
} |
Em caso de falha na verificação de validade do token fornecido, a API retornará um erro 401 - Unauthorized. |
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | consumo |
---|
| Totvs custom tabs box |
---|
tabs | Consulta,Inclusão,Alteração,Exclusão |
---|
ids | consulta,inclusao,alteracao,exclusao |
---|
| Totvs custom tabs box items |
---|
default | yes |
---|
referencia | consulta |
---|
| As consultas aos objetos armazenados na base de dados do projeto Littera podem ser efetivadas de duas formas diferentes: por meio de seu identificado único ou por meio de parâmetros fornecidos na Query String adicionada à URL da requisição. Para tanto, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo GET para a requisição;
- Adicionar o cabeçalho Authorization aos cabeçalhos da requisição, contendo como valor "Basic " - sem aspas -, sucedido do valor de token obtido por meio do processo de autenticação, devendo este estar dentro de sua validade e;
- Utilizar a URL https://localhost/api/tlra/littera/v1/{className} como base para a requisição, onde className refere-se ao nome do objeto a ser consultado, podendo:
- Não acrescentar qualquer parâmetro à URL, efetuando uma pesquisa genérica que trará os primeiros 25 registros ativos daquele objeto, ordenados por sua descrição;
- Adicionar um identificador único à URL, retornando o objeto completo caso o identificador seja encontrado e;
- Adicionar uma Query String à URL, podendo esta conter os campos page, pageSize, active e filter.
Os campos page, pageSize e active são valores escaláveis, podendo ser descritos conforme a seguinte tabela: Campo | Tipo de dado | Valores aceitos | Valor padrão | Uso |
---|
page | Inteiro | 1~ | 1 | Determina o número da "página de dados a ser acessada. Se não fornecido, seu valor é 1. | pageSize | Inteiro | 1~50 | 25 | Determina o número de registros por página a serem exibidos. Se não fornecido, seu valor padrão é 25, tendo seu valor máximo como 50. | active | Texto | true/false/all | true | Determina qual flag de status deve ser considerada na busca, referindo-se ao campo active, sendo true para os registros ativos, false para os registros inativos e all para todos os registros. |
O campo filter é um campo especial, onde a aplicação cliente pode determinar quais critérios podem fazer parte da consulta. Ele pode conter expressões e operadores para estas expressões e estes comporão o filtro a ser repassado à API para que esta realize a pesquisa conforme os critérios descritos nas expressões. Sendo assim, qualquer filtro pode ser compostos, partindo-se de dois atributos básico - description e attributes - representando, respectivamente, a descrição e os atributos do objeto registrados na base de dados. Sendo assim, uma consulta válida utilizando filtros personalizados seria: https://localhost/api/tlra/littera/v1/request?filter="attributes->>'issuer'='01234567-89ab-cdef-0123-456789abcdef' and attributes->>'status' in ('QUEUED','FINISHED')" É importante notar que as expressões constantes no campo filter devem, obrigatoriamente, estar entre aspas duplas, enquanto as strings descritivas devem estar entre aspas simples. Além disso, as expressões serão sempre compostas por um valor a ser consultado, um operador lógico e um valor de referência, podendo ser concatenadas por meio de operadores lógicos e agrupadas por meio de parentização. Sendo assim, a tabela abaixo descreve os operadores utilizados, seus tipos e exemplos de uso: Tipo do operador | Uso | Operador | Descrição | Exemplo |
---|
Lógico | Comparação | = | Determina a igualdade entre dois termos. | a = b | Lógico | Comparação | > | Determina se o valor à esquerda é maior que o valor à direita. | a > b | Lógico | Comparação | < | Determina se o valor à esquerda é menor que o valor à direita. | a < b | Logico | Comparação | >= | Determina se o valor à esquerda é maior ou igual ao valor à direita. | a >= b | Lógico | Comparação | <= | Determina se o valor à esquerda é menor ou igual ao valor à direita. | a <= b | Lógico | Comparação | <> | Determina se o valor à esquerda é diferente do valor à direita. | a <> b | Lógico | Comparação | in | Determina se o valor à esquerda está contido em um determinado conjunto de valores. | 'a' in ('a', 'b', 'c') | Lógico | Comparação | like | Determina se o valor à direita contêm o valor à esquerda (apenas texto) utilizando o wildcard *. | a like '*nome*' | Lógico | Atribuição | not | Inverte o valor retornado pelo operador à sua direita. | a not like '*nome*' | Lógico | Concatenação | and | Concatena duas expressões por multiplicação lógica. | a = b and c = d | Lógico | Concatenação | or | Concatena duas expressões por soma lógica. | a = b or c = d | Textual | Concatenação | || | Concatena dois valores do tipo texto. | 'a' || 'b' | Objetos | Acesso | -> | Acessa um nó de um objeto JSON, retornando seu resultado como um valor JSON. | a->'b' | Objetos | Acesso | ->> | Acessa um nó de um objeto JSON, retornando seu resultado como um valor texto. | a->>'b' | Objetos | Acesso | _>> | Acessa um caminho através do objeto JSON, retornando seu resultado como um valor texto. | a_>>'{a,b,c,d}' | Objetos | Acesso | <<- | Verifica se o valor à direita está contido em um JSON Array. | 'a' | <←array |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | inclusao |
---|
| Para a inclusão de um novo objeto na base de dados do projeto Littera, por meio de sua API de integração, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo POST para a requisição;
- Adicionar o cabeçalho Authorization aos cabeçalhos da requisição, contendo como valor "Basic " - sem aspas -, sucedido do valor de token obtido por meio do processo de autenticação, devendo este estar dentro de sua validade;
- Utilizar a URL https://localhost/api/tlra/littera/v1/{className} como base para a requisição, onde className refere-se ao nome do objeto a ser incluído e;
- Atribuir ao corpo da requisição um objeto JSON contendo:
- Um nó chamado description referente à descrição pela qual o objeto será identificado e;
- Um nó chamado attributes contendo o objeto em si, devendo conter todas as propriedades requeridas pelo objeto a ser inserido.
Em caso de sucesso na inclusão, a API retornará um objeto JSON contendo o identificador único do objeto adicionado à sua base de dados, juntamente com o código de status 201 - Created. Em caso de falha por inconsistência do corpo da requisição, a API retornará uma mensagem 422 - Unprocessable entity. Em caso de falha na autorização para execução da inclusão, a API retornará uma mensagem 401 - Unauthorized. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | alteracao |
---|
| Para a alteração de um objeto na base de dados do projeto Littera, por meio de sua API de integração, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo PUT para a requisição;
- Adicionar o cabeçalho Authorization aos cabeçalhos da requisição, contendo como valor "Basic " - sem aspas -, sucedido do valor de token obtido por meio do processo de autenticação, devendo este estar dentro de sua validade;
- Utilizar a URL https://localhost/api/tlra/littera/v1/{className}/{objectId} como base para a requisição, onde className refere-se ao nome do objeto a ser incluído e objectId refere-se ao identificador único do objeto e;
- Atribuir ao corpo da requisição um objeto JSON contendo:
- Um nó chamado description referente à descrição pela qual o objeto será identificado e;
- Um nó chamado attributes contendo o objeto em si, devendo conter todas as propriedades requeridas pelo objeto a ser alterado.
Em caso de sucesso na inclusão, a API retornará uma mensagem 202 - Accepted. Em caso de falha por inconsistência do corpo da requisição, a API retornará uma mensagem 422 - Unprocessable entity. Em caso de falha na autorização para execução da inclusão, a API retornará uma mensagem 401 - Unauthorized. Em caso de falha na localização do objeto pela API, ela retornará uma mensagem 404 - Not found. |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | exclusao |
---|
| Para a exclusão de um objeto na base de dados do projeto Littera, por meio de sua API de integração, a aplicação cliente deve, considerando o endereço de instalação da API como localhost, operando em suas portas padrão (80 e 443): - Utilizar o verbo DELETE para a requisição;
- Adicionar o cabeçalho Authorization aos cabeçalhos da requisição, contendo como valor "Basic " - sem aspas -, sucedido do valor de token obtido por meio do processo de autenticação, devendo este estar dentro de sua validade e;
- Utilizar a URL https://localhost/api/tlra/littera/v1/{className}/{objectId} como base para a requisição, onde className refere-se ao nome do objeto a ser incluído e objectId refere-se ao identificador único do objeto.
Em caso de sucesso na inclusão, a API retornará uma mensagem 204 - No content. Em caso de falha na autorização para execução da inclusão, a API retornará uma mensagem 401 - Unauthorized. Em caso de falha na localização do objeto pela API, ela retornará uma mensagem 404 - Not found. | Totvs custom tabs box items |
---|
default | no |
---|
referencia | alteracao |
---|
| Totvs custom tabs box items |
---|
|
default | no |
---|
referencia | exclusao |
|
|
|
|
|