Histórico da Página
NOME DO REQUISITO
...
Linha de Produto:
...
T-Reports
...
Segmento:
...
T-Reports
...
Módulo:
...
T-Reports.
...
Os retornos dos serviços REST devem estar encapsulados dentro de um objeto JSON com a seguinte especificação:
Mensagens de erro
Para todas as mensagens que representam um erro (códigos HTTP 4xx e 5xx) deve-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 (código http 2xx devem) devem retornar diretamente a entidade que representa o objeto resultado da operação do endpoint. Ex:
Exemplo:
...
...
...
}
...
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 intuito de facilitar o entendimento do documento, a URL base do RM descrita acima será utilizada no restante do documento. |
...
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 retorno 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 obter os parâmetros do provedor integrado do tipo "dados relacionais". A necessidade e definição desses parâmetros é de responsabilidade do dono do provedor. No JSON de retorno, deve constar as seguintes informações:
...
Informações | ||
---|---|---|
| ||
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
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:
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
“name” : “aliasName”,
...
...
“value” : “CorporeRM”,
“isPassword” : false,
...
...
...
...
...
...
...
...
...
“name” : “aliasName”,
...
...
“value” : “CorporeRM”,
“isPassword” : false,
}],
...
...
...
{"tableSourceName", "PFUNC"},
...
...
...
...
...
...
...
- columnName
...
title | Exemplo de json de retorno |
---|
{
“schemaTable” : {
"tableSourceName": "PFUNC",
"tableSourceDescription": "Funcionários",
"columns": [ {"columnName": "CODCOLIGADA", "columnDescription": "Codigo da coligada", "columnType": "System.Int32"},
{"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"}],
]
Esse método é utilizado no click do botão "Teste conexão" localizado no "cadastro de provedores de dados" do front-end do T-Reports, conforme abaixo:
...
Recebe
...
Application/JSON
...
Retorna
...
Application/JSON
...
schemaSqlParameters: 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;
Informações | ||
---|---|---|
| ||
{ “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" }] } |
No JSON de retorno, deve constar as seguintes informações:
schemaSql: objeto contendo as seguinte informações:
- columns: lista contendo as seguinte informações:
- columnName: Nome da coluna;
- columnType: tipo da coluna;
Informações Esse método não contêm informações de relacionamento, visto que, trata-se de uma sentença sql. Nesse caso, as informações de relacionamento não poderão ser recuperadas automaticamente de dicionários de dados.
- columns: lista contendo as seguinte informações:
...
title | Exemplo de json de retorno |
---|
{
“schemaSql” : {
"columns": [ {"columnName": "CODCOLIGADA", "columnDescription": "Codigo da coligada", "columnType": "System.Int32"},
{"columnName": "CHAPA", "columnDescription": "Chapa do funcionario", "columnType": "System.string"},
{"columnName": "SALARIO", "columnDescription": "Salario do funcionário", "columnType": "System.double"}]
},
]
...