Configurando o serviço REST via APWebWizard  

O APWebWizard é responsável por fazer as atualizações no seu arquivo "appserver.ini" de acordo com sua necessidade para a criação dos mais diversos serviços. Para iniciarmos, conforme imagem abaixo, realize a chamada via smartclient para o seu ambiente desejado:


1) Inicialmente, caso ainda não possua um serviço HTTP, precisaremos cria-lo, como no exemplo da imagem abaixo:

Informando uma pasta do servidor com o caminho para os serviços Web, a porta do HTTP, o ambiente a ser utilizado e a opção de "Protocolo habilitado" marcada.


Solicitamos a inclusão manual da configuração para compressão GZIP no servidor HTTP, conforme exemplo abaixo, disponível em builds superiores a 7.00.131227A.

Essa funcionalidade permite ao servidor realizar automaticamente a compressão dos arquivos antes se serem enviados ao requisitante, permitindo que os arquivos trafegados tenham o seu tamanho reduzido durante o seu download, otimizando o tempo de carregamento inicial do aplicativo. Os arquivos comprimidos são descompactados pelos browsers antes de sua utilização!  

Valores válidos para a tag "COMPRESSION"

Valor

Descrição

0

Desabilitado (padrão)

1

Habilitado


Como resultado dessa configuração, encontraremos as seguintes tags no arquivo "appserver.ini":

[HTTP]
ENABLE=1
PORT=8081
COMPRESSION=1
PATH=P12125MNTDB\Protheus_data\Web\portalmeurh
ENVIRONMENT=P12117MNT


2) Nessa fase vamos habilitar o serviço REST no server Protheus:

Escolha a opção REST do menu, em seguida o item HTTPV11, e clique no botão "editar configurações".

Na parte superior de Configuração de Sockets:

Na parte inferior de Configuração de URIs, preencha:


Os endpoints públicos são APIs não exigem autenticação para que o server Protheus possa responder qualquer requisição!

Por exemplo, as APIs do MeuRH que pertencem aos processos de autenticação, visto que são nelas que os nossos serviços realizam as identificações e geração do token para que todas as APIs que necessitam de identificação possam ser executadas.

Nas informações acima, foram solicitados que estejam liberadas de autenticação as APIs:

  • fwjwt/refresh_token
  • auth

Complementando a informação, ao informar "auth" estamos liberando todos os endpoints desse serviço, que basicamente seria o mesmo que informar manualmente todos os métodos existentes até o momento, por exemplo:

  • auth/login, auth/logout, auth/isLogged, auth/isFirstLogin, auth/renewPassword, auth/resetPassword, auth/ChangePassWithLastPass

Você pode optar por informar manualmente ou todos de uma única vez!


Na parte inferior da imagem, devemos informar as configurações para a montagem da URL, sendo possível configurar uma URL diferente para cada empresa.


Observação importante: o serviço REST do Protheus permite que seja a informação "ALL" que permite ao um único serviço responder a todas as empresas, todavia, pelo modelo de arquitetura do app é obrigatória a configuração de uma URL Rest para cada empresa do grupo organizacional.

Quando falamos empresa, leia-se dicionários diferentes, por exemplo: SX2010, SX2020, SX2030, etc
Para informações mais detalhadas, acesse essa documentação complementar no tópico 05: Configuração Multi-Empresas


É recomendado utilizar um servidor Protheus (AppServer) apenas com os serviços REST, sem a necessidade de configurar os outros jobs e webservices do padrão webex/soap referente ao portal tradicional Gestão do Capital Humano.

O aplicativo MeuRH utiliza somente serviços REST em sua utilização, sendo assim, permite a flexibilidade da criação de servidores separados, podendo, caso necessário, reinicializar um server sem prejudicar o outro!


3) Nessa fase vamos criar um processo comum que criará um job para inicializar o serviço do REST criado anteriormente:

Como na imagem abaixo, devemos informar:

Abaixo a imagem do Job criado, após a confirmação no botão finalizar!


Como resultado dessa configuração, encontraremos as seguintes tags no arquivo "appserver.ini":

[HTTPV11]
Enable=1
Sockets=HTTPREST

[HTTPREST]
Port=8103
URIs=HTTPENV
SECURITY=1

[HTTPENV]
URL=/rest
PrepareIn=01
Instances=1,2,1,1
ENVIRONMENT=P12117MNT
CORSEnable=1
AllowOrigin=*
Public=fwjwt/refresh_token,auth

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=P12117MNT

[ONSTART]
jobs=HTTPJOB


4) Após essas configurações do serviço REST, podemos iniciar o server, e identificar na imagem abaixo a inicialização dos serviços:


5) Para validar se o seu serviço REST está sendo carregado adequadamente, verifique se é possível realizar o carregamento dos serviços via browser:

Observe que utilizamos a porta 8103 do REST criada anteriormente, assim o nome da URL definida /rest.



Demais passos da configuração: