Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

...

Configurando o serviço REST via APWebWizard / SRVWizard  

O APWebWizard ou SRVWizard é 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:

Image Added


Image Removed
Card
labelInicialmente, caso ainda não possua um serviço HTTP, precisaremos criá-lo, como no exemplo da imagem abaixo:

1)

 

Configurando serviço HTTP.

Inicialmente, caso ainda não possua um serviço HTTP, precisaremos

cria

criá-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!

e a opção de "Protocolo habilitado" marcada.

Image Added


Após finalizar essa configuração, encontraremos as seguintes tags no arquivo "appserver.ini":

Card
label

[HTTP]
ENABLE=1
PORT=9293
COMPRESSION=1 (Tag opicional e não carregada pelo wizard)
PATH=C:\P12BASES\P12127SISTDB\PROTHEUS_DATA_SIS\web
ENVIRONMENT=P12127SISTDB

Informações
titleImportante
  • PATH

Apontamos para a PATH da pasta web localizada dentro da estrutura da system, pois outros portais como Portal Gestão Capital Humano e Portal do Candidato necessitaram utilizar as mesmas localizações de path para criação de seus arquivos.

  • COMPRESSION

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


Para mais conhecimentos sobre as tags que você poderá inserir segue um documento de referência TOTVSTEC - Arquivos de Configuração.



É possível
Card
label2) REST

2) Configurando serviço REST.

Image Removed

2) 

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

Escolha a opção REST do menu, em seguida o item

HTTPV11,

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..

Informações

A utilização obrigatória da palavra "rest" na URL do REST é uma necessidade do app MeuRH, pois é utilizado internamente quando utilizado via aplicativo baixado da apple store ou google play instalado nos celulares.  

caso utilize o nome da URL com o complemento da empresa para apoiar na identificação, como sugerimos, deverá ficar semelhante ao da imagem seguinte, em nosso caso, como nossa empresa de teste é T1, o endereço da URL seria "/restT1":
Image RemovedSeguindo, na próxima imagem, 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:

Precisaremos efetuar as configurações na parte superior (Configuração de Sockets) e inferior (Configuração de URIs).

Image Added

Configuração de Sockets, preencha:

  • Marque a opção de "Habilitado".
  • Preencha o Nome → HTTPREST
  • Preencha Porta → De própria escolha, no exemplo abaixo usamos 9191.
  • Marque item "Autenticação".

Image Added

Configuração de URIs, preencha:

  • Preencha o Nome → preferencialmente HTTPENV.
  • URL → obrigatório ter a expressão inicial "/rest", posteriormente a essa expressão pode complementar, por exemplo, com o identificador da sua empresa "/rest01" ou "/restT1".   
  • Empresa/Filial para preparação de ambiente → em geral informamos apenas o código da empresa, e consequentemente, todas as filiais pertencentes serão atendidas. Exceto quando se utiliza o login integrado ao Protheus, pois nesse caso a chave precisa obrigatoriamente conter o valor "ALL".
  • Mínimo de Working Threads Ativas, Máximo de Working Threads Ativas, Mínimo de Working Threads Livres, Quantidade de Working Threads de Incremento (dependendo da quantidade de licenças de uso pode ser ajustado)
  • Habilitar Cors → deve estar marcado.
  • Allow Origin → preenchido com * (asterisco)
  • Endpoints Públicos → deverá estar preenchido com as informações: fwjwt/refresh_token,auth 

Image Added

Image Added


Após finalizar essa configuração, encontraremos as seguintes tags no arquivo "appserver.ini":

Card
label

[HTTPV11]
ENABLE=1
Sockets=HTTPREST

[HTTPREST]
Port=9191
SECURITY=1
URIs=HTTPENV
IPsBind=

[HTTPENV]
URL=/RESTT1
PrepareIn=T1,D MG 01
Instances=2,5,1,1
Public=fwjwt/refresh_token,auth
CORSEnable=1
AllowOrigin=*

Informações
titleEndpoints Públicos

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!

Dica
titleDica interessante

É recomendado

    • "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/login,auth/logout,auth/isLogged' , 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!

Informações
titleDica interessante

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!

Image Removed

Após a confirmação teremos criado a serviço REST para o server Protheus:

Image Removed


Caso utilize licenças do tipo OnDemand, faz-se necessário informar de qual módulo as licenças serão consumidas. Essa informação deverá constar dentro do bloco [HTTPENV], contudo, não deve ser informado quando se utiliza o login Integrado ao Protheus. Abaixo um exemplo:

[HTTPENV]

MODULE=7



Card
label3) HTTPJOB

3) Configurando processo HTTPJOB.

Neste passo, iremos configurar o

3) Nessa fase vamos criar um

processo comum que criará um

job

"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.
    • Nome do Job
    • Ambiente
    • Função Advpl → informar
    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
    "
    •  → marcar opção

    Image Removed

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

    Image Removed


    Image Added

    Após finalizar essa

    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/login,auth/logout,auth/isLogged

    [HTTPJOB]
    MAIN=HTTP_START
    ENVIRONMENT=

    12.1.17

    P12127SISTDB

    [ONSTART]
    jobs=HTTPJOB



    Card
    label4) Serviço no APP

    4)

     

    Carregando serviço REST

    Após essas configurações do serviço REST, podemos

    iniciar

    reiniciar o server

    ,

    e identificar na imagem abaixo a inicialização dos serviços:

    Image Removed

    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".

    Image Removed

    Image Added



    Button
    Cor#00BFFF
    TextoPróximo passo!
    Linkhttps://tdn.totvs.com/x/RMmmHQ


    Demais passos da configuração: