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 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 e o ambiente a ser utilizado. É importante selecionar também "Protocolo habilitado" para permitir ao servidor responder as requisições que chegarem!
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". Conforme imagem abaixo, devemos configurar o socket com a porta do REST. É importante selecionar o item "habilitado" para permitir ao servidor responder as requisições que chegarem! Também é importante, marcar o item "Autenticação", para que os acessos sejam validados, visto que por padrão todos os serviços REST da TOTVS são públicos. Na parte inferior da imagem, devemos informar as configurações para a montagem da URL que estará disponível com a relação dos serviços a serem consumidos. Sendo possível configurar uma URL diferente para cada empresa, nesse momento devemos sempre utilizar a palavra "/rest" seguido com o ID da sua empresa. Por exemplo, na montagem desse exemplo, a minha empresa é "T1", ou seja, meus dicionários são "SX2T10", "SX3T10", etc..
caso sugerimos utilizar o nome da URL com o complemento da empresa para apoiar na identificação. No exemplo da imagem, como nossa empresa de teste é T1, o novo da URL seria "/restT1" Na segunda imagem desse item 2, podemos configurar as informações sobre o certificado SSL, lembrando que para esse caso também deverá ser configurado um server HTTPs para que possa responder das solicitações REST em SSL. Continuando nessa segunda imagem, devemos informar outros parâmetros: - "Habilitar Cors" deve estar marcado, assim como "Allow Origin" preenchido com '*' (asterisco) para permitir que o server possa responder requisições de outros servidores.
- "Endpoints publicos" deverá estar preenchido com as informações 'fwjwt/refresh_token,auth' , pois são os endpoints iniciais responsáveis pela autenticação e geração do token de acesso aos serviços.
Após clicar no botão de confirmação, deverá ser possível visualizar a terceira imagem final da sequencia desse item 2 de configuração! Uma dica interessante: - É possível utilizar um servidor Protheus (AppServer) apenas com os serviços REST, sem a necessidade de configurar os outros jobs e webservices do padrão 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: - O nome para o JOB.
- O ambiente relacionado para o serviço REST.
- Informar o nome da função que inicializa o serviço, obrigatoriamente: "HTTP_START"
- Marcar a opção "Habilitar job no start do servidor Protheus"
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=/restT1 PrepareIn=T1 Instances=2,5,1,1 ENVIRONMENT=12.1.17 CORSEnable=1 AllowOrigin=* Public=fwjwt/refresh_token,auth
[HTTPJOB] MAIN=HTTP_START ENVIRONMENT=12.1.17 [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 "/restT1".
|