Histórico da Página
NOME DO REQUISITO
...
Linha de Produto:
...
T-Reports
...
Segmento:
...
T-Reports
...
Módulo:
...
...
...
...
...
Os retornos dos serviços REST devem estar encapsulados dentro de um objeto JSON com a seguinte especificação:
Mensagens de erro (códigos HTTP 4xx e 5xx)
Mensagens de erro devem-se retornar obrigatoriamente os campos a seguir:
...
{
code:
""
,
message:
""
,
detailedMessage:
""
}
Exemplo:
POST http:
//totvs.com.br/api/trep/v1/dbdataproviders/testeconnection
{
code:
""
,
message:
"Erro ao testar conexão com o banco de dados"
,
detailedMessage:
"Banco de dados oracle não disponível"
}
...
Mensagens de sucesso devem-se retornar diretamente a entidade que representa o objeto resultado da operação do endpoint.
...
...
...
...
}
...
Todas as linhas de produto devem estabelecer uma URL base, a partir da qual os serviços REST de provedor integrado serão disponibilizados.
...
...
Informações |
---|
Com o objetivo de facilitar o entendimento do documento, a URL base do RM descrita acima será utilizada no restante do documento para definição dos endpoints. |
...
Os serviços REST descritos a seguir estão divididos em:
- Serviço de leitura de parâmetros gerais;
- Serviço de teste de conexão;
- Serviço de teste de sentenças sql;
- Serviço de leitura de schema de tabelas físicas;
- Serviço de leitura de schema de sentença sql;
- Serviço de leitura de dados;
Na descrição de cada serviço podemos encontrar os seguintes elementos:
...
...
GET /api/trep/v1/dbdataproviders/parameters
Recebe | Não recebe parâmetros |
Retorna | Application/JSON |
Esse método é utilizado para obtenção dos parâmetros do provedor integrado. A necessidade e definição desses parâmetros é de responsabilidade do dono do provedor.
No JSON de retorno, deve constar as seguintes informações:
...
name: Nome do parâmetro;
...
name: Nome do parâmetro;
...
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
Informações |
---|
Os parâmetros retornados por esse serviço aparecerão na grid de parâmetros localizada no "cadastro de provedores de dados" do front-end do T-Reports, conforme abaixo: |
Serviço de teste de conexão do provedor
...
Recebe | Application/JSON |
Retorna | Application/JSON |
Esse método é utilizado para testar a conexão de um provedor integrado.
No Json de entrada devem ser enviados os parâmetros cadastrados na tela de "Provedores de dados". Esses parâmetros são os mesmos recuperados pelo serviço definido acima "GET /api/trep/v1/dbdataproviders/parameters".
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
No JSON de retorno, deve constar as seguintes informações:
...
Informações | ||
---|---|---|
| ||
{ “testSuccess” : true; } |
Esse método é utilizado no click do botão "Testar conexão" localizado no "cadastro de provedores de dados" do front-end do T-Reports, conforme abaixo:
...
...
...
...
Application/JSON
...
Retorna
...
Application/JSON
...
- paramName: Nome do parâmetro da sentença sql;
- paramValue: Valor do parâmetro da sentença sql;
- paramType: Tipo do parâmetro;
...
...
No JSON de retorno, deve constar as seguintes informações:
...
Informações | ||
---|---|---|
| ||
{ “testSuccess” : true; } |
d) Serviço de leitura de schema de tabelas físicas;
GET /api/trep/v1/dbdataproviders/schematable
...
Recebe
...
Application/JSON
...
Retorna
...
Application/JSON
...
tablesSourceGetRelations: Lista contendo informações de todas as tabelas físicas cadastradas no dicionário de dados do relatório.
Informações |
---|
Através dessa lista todos os relacionamentos entre essas tabelas poderão ser recuperados automaticamente no dicionário de dados do ERP em questão, evitando assim, o cadastro manual dos relacionamentos. |
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }], "tableSourceName": "PFUNC", "tablesSourceGetRelations": [ {"tableSourceName": "PSECAO"}, {"tableSourceName": "PFDEPEND"} ] } |
...
“providerParams” : [{
“name” : “aliasName”,
“description” : “Nome do alias do RM”,
“value” : “CorporeRM”,
“isPassword” : false,
}],
"sqlText": "select * from pfunc where codcoligada = :codcol",
"sqlParameters": [{
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}]
}
schemaTable: Objeto contendo as seguinte informações:
...
...
- columnName
...
...
...
...
...
...
...
...
...
...
...
...
...
{"columnName": "CHAPA", "columnDescription": "Chapa do funcionario", "columnType": "System.string"},
{"columnName": "SALARIO", "columnDescription": "Salario do funcionário", "columnType": "System.double"}]
“relations” : [{
"relationName": "PFUNC_PFDEPEND",
"parentSourceName": "PFUNC",
"childSourceName": "PFDEPEND",
"parentColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CHAPA"}],
"childColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CHAPA"}],
...
"relationName": "PFUNC_PSECAO
"parentSourceName": "PFUNC",
"childSourceName": "PSECAO,
"parentColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CODSECAO}],
"childColumns": [{"columnName": "CODCOLIGAGA"}, {"columnName": "CODIGO"}]
...
}
Esse método é utilizado na tela de cadastro de entidade do tront-end do reports, ao escolher uma fonte de dados ligada a uma tabela física:
e) Serviço de leitura de schema de sentenças sql;
...
...
...
paramName: Nome do parâmetro da sentença sql;
...
...
sqlParameters: Lista de objeto contendo informações dos parâmetros da sentença sql:
...
{
“providerParams” : [{
“description” : “Nome do alias do RM”,
“value” : “CorporeRM”,
“isPassword” : false,
}],
"sqlText": "select * from pfunc where codcoligada = :codcol",
"sqlParameters": [{
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}]
}
...
...
schemaSql: objeto contendo as seguinte informações:
- columns: lista contendo as seguinte informações:
- columnName: Nome da coluna;
- columnType: tipo da coluna;
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Esse método é utilizado na tela de cadastro de entidade do tront-end do reports, ao escolher uma fonte de dados ligada a uma sentença sql:
f) - Serviço de leitura de dados;
...
Recebe | Application/JSON |
Retorna | Application/JSON |
...
- providerParams: Parâmetros do provedor de dados.
- sentenceMember: Objeto contendo as seguinte informações:
entityName: Nome da entidade cadastrada no reports que receberá os dados.
- sqlText: sentença sql a ser disparada no banco de dados;
sqlParameters: Lista de objeto contendo informações dos parâmetros da sentença sql:
paramName: Nome do parâmetro da sentença sql;
- paramValue: Valor do parâmetro da sentença sql;
- paramType: Tipo do parâmetro;
- maxRecords: número máximo de registros a serem retornados. Se o valor for < 0 (default), serão retornados todos os registros.
Informações title Exemplo de json de entrada {
“providerParams” : [{
“description” : “Nome do alias do RM”,
“value” : “CorporeRM”,
“isPassword” : false,
}],
"sentenceMember": {
"entityName": "Funcionarios",
"sqlText": "select * from pfunc where codcoligada = :codcol",
"sqlParameters": [{
"paramName": "codcol",
"paramValue": "1",
"paramType": "system.Int32"
}],
maxRecords: 10}
}
No JSON de retorno, deve constar as seguintes informações:
entityName: Nome da entidade enviada no parâmetros "entityName" do objeto de request;
- data: Dados recuperadas no banco de dados através da execução da sentença sql enviada no objeto de request:
Informações Os dados recuperados devem ser retornados no formato xml ou no formato json. É necessário enviar no cabeçalho da resposta o tipo de conteúdo enviado. Content-type = application/xml ou Content-type = application/json
...
title | Exemplo de json de retorno |
---|
{
“entityName” :"Funcionarios",
"data": "xml ou json contendo o resultado da execução da sentença sql"
...