Páginas filhas
  • Desenvolvimento de APIs para o produto Logix

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Informações
titleÍndice

Índice
stylecircle


Conceito

Uma API (acrônimo de Application Programming Interface ou  ou Interface de Programação de Aplicação em português) é um conjunto de rotinas e padrões estabelecidos por um software para a utilização de seus recursos por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços. De modo geral, uma API é composta por uma série de funções acessíveis somente por programação e que permitem utilizar características do software menos evidentes ao usuário tradicional.

...

Para o correto desenvolvimento é preciso ter em mente alguns cuidados que devem ser sempre considerados na construção de uma API:

  • Nunca desenvolva ou solicite qualquer interação com o usuário, seja ela através de telas, mensagens ou perguntas;
  • Simplifique suas funções, não é uma boa prática construir uma função "faz tudo", separe sempre sua lógica em diversas funções que possam ser executadas de formas distintas;
  • Evite que suas funções dependam do produto, lembre-se que elas poderão ser executadas através de outros produtos ou serviços; e
  • Sempre desenvolva visando a solução de único objetivo de negócio. Uma API para manutenção de pedidos não pode conter manutenção de empresas, por exemplo.

Nos próximos itens deste documento, serão detalhadas as técnicas que devem ser seguidas na construção do código fonte da APIda API.

Aviso
titlePara específicos

Utilize sempre como base para a criação de uma API TOTVS o Guia de Implementação de API TOTVS, disponível em: http://tdn.totvs.com/x/nDUxE

...

     O desenvolvimento de APIs permite a exposição e o consumo de dados para integração (front-end, portais, customizações, etc) com o back-end do produto Logix, de maneira segura e padronizada.

     A estrutura de integração de APIs Logix suporta o envio de requisições no estilo de arquitetura REST com o desenvolvimento da regra de negócio em 4GL e está disponível para utilização conforme apresentado no quadro abaixo:

...

      O Guia de Implementação de API TOTVS define que o formato das URIs dos endpoints devem conter o nome do produto, o módulo, a versão da API e o recurso alvo da funcionalidade em questão. Tomando como exemplo o endpoint de integração do recurso de "Dimensões" do módulo de "WMS" do produto "Logix", a URI básica deste serviço deve ser: /api/wms/v1/dimensoes

...

     Para "publicar" a funcionalidade 4GL basta criar o programa (.4gl) com o seguinte caminho: <módulo>/api/<versão API>/<recurso>.4gl. 

     A sub-pasta "api" passa a concentrar todas as funcionalidades de integração dos módulos existentes. Outros caminhos e parâmetros podem ser adicionados a URL, mas sempre de acordo com o Guia de Implementação de APIs.

...

Informações
titleImportante

Os programas 4GL disponibilizados, deverão seguir o padrão de localização abaixo:

Exemplos:

Objeto de NegócioFunção de roteamento
\suprimentos\obrigacoes_fiscais\api\v1\transportadoras.4globf_v1_transportadoras
\suprimentos\suprimentos\api\v1\estoque.4glsup_v1_estoque
\adm_producao\manufatura\api\v1\apontamento_horas.4glman_v1_apontamento_horas



Nota
titleImportante - Desenvolvimento de APIS específicas de clientes (Fábrica de Software)
  • Para desenvolvimento de API específica de cliente
Para desenvolvimentos específicos
  • é preciso adicionar o sufixo "_espec"
ao
  • no nome do
recurso
  • fonte para que não gere conflitos com
as APIs padrões disponibilizadas pelo produto.Exemplo: obf_v1_transportadoras
  • os fontes de APIs disponibilizadas pelo produto padrão e a compilação de fonte específico acabe sobrepondo funções do fonte padão.  Exemplo: transportadoras_espec.4gl
  • No TFS os arquivos com o código fonte das APIs específicas devem ser armazenados respeitando o mesmo padrão de pastas utilizado para as APIs do produto padrão, ou seja:

Exemplo:

API PADRÃO     → $/Logix/Fontes_Doc/Sustentacao/V12/V12/suprimentos/suprimentos/api/v1/Request.4gl

API ESPECÍFICA → $/Logix/Fontes_Doc/Customizacao/V12/wurth_do_brasil_pecas_de_fixacao_ltd/suprimentos/suprimentos/api/v1/Tributos_espec.4gl  (sufixo "_espec" no final do nome do arquivo)


  • As funções internas do fonte de API específica deverá ter nome de funções acrescentando a letra "e" (específico) ao final do nome do módulo, assim como já é muito utilizado no nome de fontes específicos atualmente. Neste todas funções internas da API específica, utilizando como exemplo a API específica "Tributos" citada logo acima, deverão ficar definidas com o seguinte prefixo vdpe_v1_tributos.


Exemplos:

vdpe_v1_tributos()          >> função principal para definição de rotas

vdpe_v1_tributos_post() >> Função acionada pelo método POST (definida na função de rotas)

vdpe_v1_tributos_get()   >> Função acionada pelo método GET (definida na função de rotas)


     Dentro do código fonte 4GL a definição da função principal (roteadora) é de fundamental importância,      Dentro do código fonte 4GL a definição da função principal (roteadora) é de fundamental importância, pois é ela que será primeiramente chamada e que definirá como será a execução das outras funções com base na requisição solicitada. Segue abaixo um exemplo de definição:

...

Exemplo de definição de funções e como será realizada a requisição web WEB de execução destas funções:

FunçãoRequisição

FUNCTION

obf_v1_transportadoras()

GET/POST/PUT/DELETE

/api/obf/v1/transportadoras

FUNCTION

sup_v1_estoque()

GET/POST/PUT/DELETE

/api/sup/v1/estoque

FUNCTION

man_v1_apontamento_horas()

GET/POST/PUT/DELETE

/api/man/v1/apontamento_horas

Nota
titleAPIS Específicas de clientes (Fábrica de Software)

Para funções de APIs específicas mantidas pela Fábrica de Software, conforme citado na nota IMPORTANTE no final do tópico 03. Serviços 4GL,  a sigla do módulo indicada no início das funções é acrescida de "e".

Exemplos:  

   obf_v1_transportadoras()

sup_v1_estoque()

man_v1_apontamento_horas()


Quais funções devem sempre existir e respeitar padronização de nomenclatura:

...