Histórico da Página
Índice |
---|
1 - Visão Geral
Para utilização dos Apps é necessário que o REST do Protheus esteja habilitado e configurado corretamente, nas seções abaixo temos alguns exemplos de configuração e validação.
2 - Configuração do REST
Para fazer a configuração do Rest é recomendado que seja criada uma cópia do appserver do Protheus para que ele rode em instâncias separadas conforme no exemplo abaixo:
Os arquivos podem ser copiados da pasta appserver, sendo necessário alterar apenas o arquivo appserver.ini da pasta onde ficará o REST.
3 - Configuração do appserver.ini:
O arquivo appserver.ini deve conter as chaves abaixo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
[General] MAXSTRINGSIZE=10 // Essa chave é obrigatória com o valor mínimo de 10 [HTTPREST] Port=8080 // porta que o REST irá utilizar para subir o serviço, pode ser alterada para qualquer outra porta. IPsBind= URIs=HTTPURI Security=1 // O valor 1 é obrigatório. [HTTPURI] // mesmo valor da chave URIs, definido na linha 7 URL=/rest // path onde o rest irá subir, pode ser alterado. PrepareIn=ALL Instances=1,1 // Chave obrigatória, mais informações http://tdn.totvs.com/display/tec/Instances CORSEnable=1 // essa chave é obrigatória e com o valor 1, caso contrário, o REST não aceitara as requisições dos apps. AllowOrigin=* // Essa chave limita os IP's que o REST do Protheus pode responder, deve conter o valor * (responder para qualquer ip) ou os ip's |
Obs: O exemplo acima contém apenas os valores obrigatórios referente ao REST.
4 - Problemas mais comuns:
A falta de quaisquer uma das chaves no exemplo acima faz com que o REST não funcione como esperado. Abaixo listamos algumas:
- SECURITY=0
A chave SECURITY indica se o REST irá validar o usuário que esta fazendo a chamada ou não, quando o valor esta como 0, é desconsiderado o usuário enviado e o Protheus executa a chamada com o usuário administrador. Essa configuração traz grandes problemas de segurança para o Protheus e deve ser usado apenas em modo de desenvolvimento.
Os aplicativos também não funcionam corretamente, pois independente do usuário que fez o login, os dados e configurações de usuário exibidos dentro do aplicativo, são do usuário administrador.
Caso não haja a chave SECURITY, o valor dela é 1, o que esta correto também.
- PrepareIn
A chave prepareIn indica para quais empresas/filiais o REST irá subir uma thread. O Valor ALL usado no exemplo acima sobe uma thread para cada empresa e filial. Porém é consumida uma licença (especificar qual licença) para cada thread. Caso o cliente não for utilizar todas as empresas/filias, é possível subir apenas para as que ele deseja. Exemplo:
PrepareIn=T1, D MG 01
Criar exemplo com 2 empresas / filias
- CORSEnable
A chave CORSEnable indica se o REST do Protheus pode receber requisições fora do próprio servidor. Para utilização dos Apps, essa chave é obrigatória com o valor 1. Pois seu valor padrão é 0.
- AllowOrigin
A chave AllowOrigin indica de quais ip's o REST pode responder. Quando o valor é * (asterisco), indica que o Protheus pode responder para qualquer ip. Para utilização dos Apps, é possível limitar o acesso apenas para os ranges de ip's do Mingle (criar link para documentação do Mingle) listados abaixo:
- 138.219.88.0/24
- 189.125.78.128/25
- 187.94.48.0/20
- 189.89.32.0/20
- 181.41.160.0/19
Obs: Essa configuração também deve ser feita no firewall da rede do cliente.
5 - Validações:
Existem diferentes maneiras para verificar se o REST esta com a configuração correta.
5.1 Acesso pelo navegador
A primeira e mais fácil de fazer, é acessa-lo pelo navegador, verificando esse acesso é possível saber se o REST esta de pé. Caso não seja possível acessa-lo, os aplicativos não irão funcionar.
Como testar:
5.1.1 - Ambiente local
Caso esteja fazendo o teste em ambiente local, siga os passos abaixo:
- Descobrir o ip local:
é possível verificar rodando o comando ipconfig no command do windows: - Verificar qual porta foi configurado o rest:
é a chave Port dentro da tag HTTPREST do arquivo appserver.ini. ( linha 5 do exemplo na sessão 3) - Verificar qual a chave do rest:
é a chave URL dentro da tag HTTPURI do arquivo appserver.ini. ( linha 11 do exemplo na sessão 3)
no nosso exemplo, ficaria
http://10.172.145.178:8080/rest
Acessar o endereço pelo navegador.
5.1.2 - Ambiente do cliente
Caso o teste seja feito em um ambiente do cliente, será necessário orienta-lo a seguir os passos acima.
Após ter o endereço do REST em mãos, é recomendado testar de um outro aparelho que não seja o próprio servidor. Pode ser qualquer computador ou celular que esteja na mesma rede (do cliente).
Em ambos os casos, deverá ser aberta uma página semelhante a abaixo: