Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Para criar um Web Services REST/Server, utilizando o sistema Microsiga Protheus, deve-se, primeiramente, habilitar o TOTVS | Application Server como servidor HTTP 1.1.

 

Abrangência
ERP 11 e superiores

 

Uma vez configurado e habilitado, deve-se codificar uma classe especial da linguagem AdvPL, chamada WSRESTFUL, que constituirá o serviço.No entanto, antes de iniciar a codificação, é expressamente recomendado que sejam lidos todos os artigos do tópico Aplicações Server, onde são abordados em detalhes a infraestrutura envolvida com os Web Services, seu funcionamento e particularidades de comportamento da classe de Web Services..

Visão Geral

Para codificação de um Web Services RESTforam criadas na linguagem AdvPL instruções especiais de declaração de classes, específicas, que suportam nomes de classe, métodos e propriedades. A utilização destes comandos exige a declaração da #INCLUDE "RESTFUL.CH", no início do código fonte, como também atenção a alguns pontos e particularidades, começando pela nomenclatura do serviço, estruturas, métodos e propriedades.

Características operacionais do ambiente

É muito importante estar atento ao desenvolver os métodos REST, devido às características operacionais do ambiente de Working Threads utilizado pelo Web Services. Ao executar um método do Web Services, o ambiente será mantido no ar, aguardando uma nova requisição de processamento, de qualquer serviço ou método de qualquer cliente. Deste modo, ao desenvolver um serviço, não deve-se deixar abertas as queriesutilizadas no método, filtros setados em tabelas principais ou configurações específicas não-padrão do ambiente, realizadas para o processamento de um método específico; pois isto pode causar impacto no funcionamento de todos os Web Services compilados e ativos neste servidor, com efeitos imprevisíveis.

Nomenclatura dos serviços

O nome de uma classe para Web Services, deve ser iniciada por um caractere alfabético e deve conter apenas os caracteres alfabéticos compreendidos entre A e Z, os caracteres numéricos compreendidos entre 0 e 9, podendo também ser utilizado o caracter "_" (underline). Um serviço não pode ter o nome de uma palavra reservada, da linguagem AdvPL, ou ter o nome igual a um tipo básico de informação.

 

Nomenclatura de estruturas

O nome dado a uma estrutura obedece as mesmas regras da nomenclatura de serviços; ou seja, não pode haver uma estrutura com o mesmo nome de um serviço declarado. Além disso, é importante estar atento ao fato de uma estrutura não estar diretamente ligada ao serviço em questão, de modo que não pode-se compilar duas estruturas de mesmo nome no mesmo repositório.

Uma estrutura constitui um agrupamento de dados, criado como um comando especial (WSSTRUCT) em AdvPL. Para isso, deve-se criar de uma estrutura para um serviço, quando for necessário agrupar um conjunto de dados básicos e/ou outras estruturas em um único tipo de informação, que será utilizada como parâmetro e/ou retorno em um ou mais métodos do serviço.

 

Nomenclatura das propriedades, parâmetros e retorno

Cada parâmetro e retorno de todos os métodos de um serviço, devem ser declarados como uma propriedade da classe do serviço. Para dar nome a estes, são válidas as mesmas regras da nomenclatura de serviços, não podendo haver um dado com o mesmo nome de um serviço ou estrutura já declarados anteriormente.