Importante
O conteúdo relacionado na página abaixo foi substituído e será descontinuado em releases futuras.
A nova técnica para desenvolvimento de API poderá ser consultada através do seguinte endereço (http://tdn.totvs.com/x/6BE4Fw) e esta disponível a partir da release 12.1.22 do Logix.
A declaração do nome da função terá fundamental importância neste desenvolvimento, pois é isso que definirá se a função da API ficará pública e como será a execução da função a partir de serviços web. Segue abaixo um exemplo de definição:
Sempre delimitada pelo caractere underscore, o nome da função indica como será sua estrutura a partir de cada delimitador, sendo:
- Nome da API (logr2)
- Identificador de publicação da função (pub)
- Método de execução da função (create)
- Nome da função (empresas)
Abaixo seguem maiores detalhes sobre como cada uma das informações citadas anteriormente deve ser declarada.
1.2 Nome da API
Seguindo o padrão de desenvolvimento atual, todas as funções da API devem iniciar com o nome do objeto de negócio correspondente.
Exemplos:
Objeto de Negócio | Função |
---|---|
supr0004 | supr0004_pub_update_item, supr4_pub_delete_item |
manr0099 | manr0099_pub_delete_estrutura, manr99_verifica_estrutura |
obfr0021 | obfr0021_atualiza_nota, obfr21_process_emiteNota |
1.3 Identificador de Publicação
O identificador _pub_
indica que a função ficará exposta publicamente para execução a partir de outros serviços externos, independente de produto ou tecnologia. Uma função dentro da API sem este identificador será considerada como interna sendo acessível apenas pelo Logix.
Funções Privadas
A partir da versão do build 7.00.131227A, a tecnologia 4GL passa a suportar funções "privadas" acessíveis apenas por funções que estejam dentro do mesmo código fonte. Para mais informações consulte o link Implementação PRIVATE FUNCTION.
1.4 Método de Execução
O método de execução indica como será realizada a chamada da função através de um serviço web, ou seja, qual método de requisição HTTP será utilizado para sua execução. Esta informação deve estar de acordo com o objetivo da função, indicando a ação que será realizada na mesma.
Abaixo segue a tabela de conversão dos métodos HTTP para o método de execução das funções 4GL:
Método de Execução | Método HTTP | Objetivo |
---|---|---|
create | POST | Criação de um ou mais registros. |
process | POST | Processamento de dados ou geração de relatórios. |
update | PUT | Atualização de um ou mais registros. |
get | GET | Consulta a um ou mais registros. |
delete | DELETE | Exclusão de um ou mais registros. |
Os métodos de requisições HTTP existentes podem ser consultados através deste link: http://www.w3schools.com/tags/ref_httpmethods.asp.
1.5 Nome da Função
O nome da função 4GL irá definir o entry point
de execução através de um serviço web e indica o objeto de negócio que será manipulado.
Para nomes de funções com mais de uma palavra evite utilizar delimitadores, use o formato de classe sendo a primeira palavra em minúscula e o restante com a primeira letra maiúscula. Isto fará com que a URL de execução da função fique mais clara.
Exemplo:
FUNCTION logr0003_pub_create_inclusaoDimensaoEmpresa
FUNCTION obfr0010_pub_process_enviaEmailTransportadora
FUNCTION supr0010_pub_process_centralizaConsultaEstoqueProprio
Segue abaixo exemplo de definição de funções e como será realizada a requisição web de execução destas funções:
Função | Requisição |
---|---|
|
|
FUNCTION obfr0010_pub_process_emailTransportadora() |
|
FUNCTION supr0010_pub_update_estoqueProprio() |
|
FUNCTION manr0021_pub_get_apontamento_horas() | GET /logix-rest/manr21/apontamento_hora |