CONTEÚDO

  1. Visão Geral
  2. Exemplo de Configuração Simplificada
  3. Exemplo de Configuração Detalhada
  4. Teste de Disponibilidade


01. VISÃO GERAL

Devido a demanda de segurança na camada das APIs disponibilizadas pelo TSS, a partir da versão de release 12.1.2410 do TSS, o serviço REST deverá ser reconfigurado. A nova configuração de REST no produto passa a ser o TSS REST SERVER 1.0 e não mais as configurações de REST do Framework Protheus que deverão deixar de ser utilizada a partir da release 12.1.2410.

A seguir serão detalhadas as configurações do novo TSS REST SERVER.

02. EXEMPLO DE CONFIGURAÇÃO SIMPLIFICADA


Neste capitulo iremos abordar as configurações mínimas para o funcionamento do novo REST do TSS.

Para isso basta informar as seguintes seções e tags no arquivo de appserver.ini do TSS. São elas:


[TSSREST_CONFIG]
Servers=TSSREST_SERVER

[TSSREST_SERVER]
Port=1322
URIs=TSSREST_URI

[TSSREST_URI]
URL=/rest/tss

[JOBTSSREST]
main=TSSREST_START
environment=SPED

[ONSTART]
JOBS=JOBTSSREST
REFRESHRATE=10



03. EXEMPLO DE CONFIGURAÇÃO DETALHADA 


Aqui serão mostradas todas as configurações possível de serem configuradas para um controle maior do(s) serviço(s) REST do TSS.

Para isso, serão quebradas por seções do appserver.ini para um melhor entendimento. 



Seção TSSREST_CONFIG


[TSSREST_CONFIG]

Seção responsável por iniciar as configurações do TSS REST SERVER (HTTPSERVER).

De todos os nomes de seções que serão tratados, este é o único que é obrigatório manter o mesmo nome TSSREST_CONFIG.

Abaixo serão detalhadas as tags desta seção:


TAGDescriçãoValores PossíveisObrigatórioValor padrão
EnableResponsável por habilitar ou desabilitar a subida do TSS REST SERVER ao iniciar o apsserver.exe do TSS

0=Desabilitado ou 1=Habilitado

Não

1

Servers

Nome de Seções com configuração de porta e URL (pelo menos uma seção). Por ela é possível definir um ou mais servidores, sendo assim, pode-se informar uma lista.

Nome livre

Sim


CharsetCharset é a chave para definir com qual Codepage o REST irá trabalhar.

Exemplos: ASCII, UTF-8, ANSI e ISO-8859-1

Não

UTF-8

LogDefine se habilita ou não a gravação dos logs de eventos do HttpServer.

0=Desabilitado ou 1=Habilitado

Não

0


Exemplo de configuração:


[TSSREST_CONFIG]
Enable=1
Servers=TSSREST_SERVER
Charset=UTF-8
Log=1




Seção Servers


[TSSREST_SERVER]

Define as configurações de cada servidor HTTP e/ou HTTPS informados na sessão [HTTPSERVER] pela chave {SERVERS}.

Os nomes aqui preenchidos podem variar conforme desejado, neste caso vamos seguir tratando como [TSSREST_SERVER] apenas para exemplo.

Abaixo serão detalhadas as tags desta seção:


TAGDescriçãoValores PossíveisObrigatórioValor padrão
PortDefine a porta em que o servidor atenderá às requisições após ativado.

Campo livre

Sim


URIsDefine o nome das sessões (URIs) deste servidor. O(s) nome(s) definido(s) nesta chave serão utilizado(s) na chave de URI (neste exemplo: TSSREST_URI)Campo livreSim
SslCertificateInformar o path com o nome do arquivo do certificado digital, para utilização do REST com o protocolo HTTPS/SSL (caminho absoluto).Campo livreNão
SslCertificateKeyInformar o path com o nome do arquivo com a chave do certificado digital, para utilização do REST com o protocolo HTTPS/SSL (caminho absoluto).Campo livreNão
SslPassPhraseSenha utilizada para autenticar o arquivo de certificado digitalCampo livreNão
ProtocolMinConfiguração de protocolo de segurança mínimo a ser aplicado na configuração do REST.SSL/TLS, TLSv1.3, TLSv1.2, TLSv1.1, TLSv1NãoSSL/TLS
ProtocolMaxConfiguração de protocolo de segurança máximo a ser aplicado na configuração do REST.SSL/TLS, TLSv1.3, TLSv1.2, TLSv1.1, TLSv1NãoSSL/TLS


Exemplo de configuração:


Port=1322
URIs=TSSREST_URI
Security=1
protocolMin=TLSv1.0
protocolMax=TLSv1.3
SslCertificate=C:\certificados\https_rest\cert_rest.crt
SslCertificateKey=C:\certificados\https_rest\cert_rest.pem
SslPassPhrase=123456




Seção URIs


[TSSREST_URI]

Define as configurações de cada servidor HTTP e/ou HTTPS informados na sessão [HTTPSERVER] pela chave {SERVERS}.

Os nomes aqui preenchidos podem variar conforme desejado, neste caso vamos seguir tratando como [TSSREST_SERVER] apenas para exemplo.

Abaixo serão detalhadas as tags desta seção:


TAGDescriçãoValores PossíveisObrigatórioValor padrão
URLURN do siteTexto livreNão/
RootPathDiretório onde estão armazenados os arquivos do site, pode ser informado como um path absoluto ou relativo ao diretório onde o servidor de aplicações executaTexto livreNãoROOTPATH do TSS + '\http-root\tssrest\'
DefaultPagePáginas iniciais que serão inicializadas no acesso a URL. Podem ser informadas várias páginas separados por espaço. Podem ser definidas mais de uma página default separados pode vírgula (,)Texto livreNãoindex.html
Instances

Indica o controle de thread pool disponíveis para atender as requisições de APIs no TSS REST SERVER, em formato P1,P2,P3,P4. Onde:

P1 = Indica a quantidade mínima de threads ativas no thread pool. Deve ser maior que zeros.

P2 = Indica a quantidade máxima de threads ativas no thread pool. Deve ser maior ou igual que P1.

P3 = Indica a quantidade mínima de threads prontas para execução no thread pool. Deve ser positivo e menor ou igual a P1.

P4= O fator de crescimento, indica a quantidade de threads a serem alocadas. Deve ser maior que zero.

Mínimo, Máximo, Mínimo Livre, Fator CrescimentoNão1,4,1,1
CORSEnableHabilita utilização de controle de CORS0=Desabilitado ou 1=HabilitadoNão1
AllowOrigin

Define lista de domínios permitidos para acessar as APIs do serviço REST. Exemplo: https://www.dominio.com.br/, https://10.172.0.84:1081/, http://localhost:1080/

*=Para liberar todos os domínios ou texto livre com os domínios separados por virgula.Não*
AllowMethodsDefine lista de métodos HTTP permitidos para acessar as APIs do serviço RESTGET,POST,PUT,DELETE,PATCH,OPTIONS,HEADNãoGET,POST,PUT,DELETE,PATCH,OPTIONS,HEAD
ExpirationTimeÉ o tempo em segundos que a thread aguarda uma nova requisição. Se expirado a thread retorna a aguardar uma requisição ou finalizara conforme análise dos controles da quantidade de threads. O valor deve se maior que zero se não for informado o sistema assume o valor padrão.
Não60
AcceptTimeOutÉ o tempo em segundos que uma nova requisição aguarda para ser processada. Se expirado a requisição é descartada e o cliente sairá por timeout. O valor deve se maior que zero se não for informado o sistema assume o valor padrão.
Não10


Exemplo de configuração:


[TSSREST_URI]
URL=/rest/tss
RootPath=C:\tss\http-root\httprest\httpuri\
DefaultPage=index.html
Instances=1,10,2,1
CORSEnable=1
AllowOrigin=*
AllowMethods=POST,GET,DELETE,UPDATE
ExpirationTime=120
AcceptTimeOut=10




Seção [JOBTSSREST]


[JOBTSSREST]

Esta seção define a configuração do JOB responsável por criar o(s) serviço(s) do TSS REST SERVER.

O nome desta seção pode variar conforme desejado, neste caso vamos seguir tratando como [JOBTSSREST] apenas para exemplo.

Abaixo serão detalhadas as tags desta seção:


TAGDescriçãoValores PossíveisObrigatórioValor padrão
mainNome da função a ser executada. Neste caso deve ser preenchido sempre com: TSSREST_STARTTSSREST_STARTSim
environmentNome do ambiente onde será executado o TSS REST SERVER. Normalmente o mesmo nome do ambiente configurado para o TSS. Exemplo: SPEDTexto livreSim


Exemplo de configuração:


[JOBTSSREST]
main=TSSREST_START
environment=SPED


04. TESTE DE DISPONIBILIDADE DO TSS REST SERVER 


Com o appserver.ini devidamente configurado ao inicializar o appserver.exe do TSS, após mais ou menos 10 segundos da inicialização, serão impressos alguns logs no arquivo console.log informando o status da criação do(s) serviço(s) de TSS REST SERVER, conforme prints que seguem:

  1. Subida do TSS REST SERVER com sucesso:

2. Indicativo da(s) URL(s) do(s) TSS REST SERVER criado(s):

3. Cada URL poderá ser informado como endereço de URL em um browser/navegador, para verificação da disponibilidade do serviço de TSS REST SERVER: