Fornecer meio de consultar e recuperar os dados para uma determinada consulta genérica relacional criada no sistema através de API REST.
Disponível a partir da lib |
A partir de uma consulta .ngc criada no sistema é possível fazer a consulta usando o endpoint ilustrado no exemplo a seguir.
A consulta a seguir funciona para os casos que o arquivos está disponível dentro da pasta /system/
no sistema.GET host:[port][/uri]/api/framework/v1/genericRecords/{arquivo_da_consulta[.ngc]}
{ "items": [ { "a2_loja": "01", "a2_cgc": "89652306000136", "a2_cod": "0001", "a2_nome": "BENJAMIN E GUSTAVO FILMAGENS LTDA", "a2_filial": "00" }, { "a2_loja": "01", "a2_cgc": "94330307000102", "a2_cod": "0002", "a2_nome": "ESTHER E MÁRIO TELECOMUNICAÇÕES LTDA", "a2_filial": "00" }, { "a2_loja": "01", "a2_cgc": "75185866000113", "a2_cod": "0003", "a2_nome": "LORENA E GIOVANNI LIMPEZA LTDA", "a2_filial": "00" } ], "hasNext": true } |
É possível realizar a exploração da API utilizando os recursos convencionados pelo padrão de APIs Totvs (vide link nos assuntos relacionados).
E com isso é recomendado que sejam recuperados os campos utilizados pela aplicação cliente com o uso de: page, pageSize e fields.
Como exemplo, o resultado da requisição anterior teve o resultado resumido utilizando os seguintes valores para filtro:
- host:[port][/uri]/api/framework/v1/genericRecords/fornecedores_basica?fields=a2_filial
, a2_cod, a2_loja, a2_nome, a2_cgc&page=1&pageSize=3
fornecedores_basica
==> nome da consulta criada no sistemafields
=> lista de campos desejados no retorno da consultapage
=> página de resultados desejada para o retorno dos valorespageSize
=> quantidade de registros por página desejado
Para mais informações sobre estes controles na exploração dos dados veja o link nos assuntos relacionados.
Para recuperar os dados de consultas que não têm o arquivo .ngc
gravado na pasta system pode ser informado o caminho através da propriedade folder
no header
da requisição. Essa propriedade permite que seja indicado um caminho a partir do protheus_data
onde a consulta deve ser encontrada.
Como exemplo considere que a consulta esteja na pasta .../protheus_data/consultas/uma_consulta_relacional.ngc
é necessário informar a proriedade folder: /consultas/
para o funcionamento adequado e recuperação dos dados.
Quando uma consulta com duas ou mais tabelas for criada e nenhum campo seja escolhido para a exibição será realizado o retorno somente dos campos da tabela principal (primeira tabela). Este comportamento tem o objetivo de evitar o tráfego exagerado de dados das tabelas que prejudica o processamento tanto pelo servidor quanto pelo cliente.
Portanto sempre escolha deliberadamente os campos para exibição nas consultas, assim consultas SQL com * são evitadas e o serviço terá um desempenho melhor.
Guia de implementação de API V2.0
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |