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 (códigos HTTP 4xx e 5xx)
Mensagens de erro devem-se retornar obrigatoriamente os campos a seguir:
Exemplo:
|
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.
Como exemplo, no ERP RM foi definida a seguinte URL base:
/api/trep/v1/dbdataproviders/
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:
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;
isPassword: Define se o valor do parâmetro será gravado e mostrado de forma criptografada. Pode ser true ou false
{ “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: |
Serviço de teste de conexão do provedor
POST /api/trep/v1/dbdataproviders/testconnection
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".
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }] } |
No JSON de retorno, deve constar as seguintes informações:
testSuccess: Informa se o teste do bem sucedido. Pode ser true ou false
{ “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:
c) Serviço de teste de sentenças sql
POST /api/trep/v1/dbdataproviders/testquery
Recebe | Application/JSON |
Retorna | Application/JSON |
Esse método é utilizado para testar a sintaxe de uma sentença sql.
No Json de entrada devem ser enviadas os seguintes informações:
{ "asdfasd": "asdfasdf" } |
{ “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" }] } |
No JSON de retorno, deve constar as seguintes informações:
testSuccess: Informa se o teste do bem sucedido. Pode ser true ou false
{ “testSuccess” : true; } |
Serviço de leitura de schema de tabelas físicas;
GET /api/trep/v1/dbdataproviders/schematable
Recebe | Application/JSON |
Retorna | Application/JSON |
Esse método é utilizado para retornar o schema (estrutura) de uma tabela localizada fisicamente em um determinado provedor de dados.
No Json de entrada devem ser enviadas os seguintes informações:
tablesSourceGetRelations: Lista de todas as tabelas físicas cadastradas no dicionário de dados do relatório. Através dessa lista, todas os relacionamentos entre essas tabelas poderão ser recuperados automaticamente. Evitando assim, o cadastro manual dos relacionamentos.
{ “providerParams” : [{ “name” : “aliasName”, “description” : “Nome do alias do RM”, “value” : “CorporeRM”, “isPassword” : false, }], "tableSourceName": "PFUNC", "tablesSourceGetRelations": [ {"tableSourceName", "PFUNC"}, {"tableSourceName", "PFUNC"} ] } |
No JSON de retorno, deve constar as seguintes informações:
schemaTable: objeto contendo as seguinte informações:
{ “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:
Serviço de leitura de schema de sentenças sql;
GET /api/trep/v1/dbdataproviders/schemasql
Recebe | Application/JSON |
Retorna | Application/JSON |
Esse método é utilizado para retornar o schema (estrutura) de uma sentença sql disparada em um determinado provedor de dados.
No Json de entrada devem ser enviadas os seguintes informações:
schemaSqlParameters: Lista de objeto contendo informações dos parâmetros da sentença sql:
paramName: Nome do parâmetro 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" }] } |
No JSON de retorno, deve constar as seguintes informações:
schemaSql: objeto contendo as seguinte 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. |
{ “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"}] }, ] |
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: