Páginas filhas
  • TSS REST SERVER 1.0 - O servidor REST do TSS

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


CONTEÚDO

  1. Visão Geral
  2. Exemplo de Configuração Simplificada
  3. Exemplo de Configuração Detalhada
  4. Teste de Disponibilidade
  5. Outras Configurações de Autenticação TSS


01. VISÃO GERAL
Âncora
visao
visao


Para que o sistema TSS possibilite uma maior configuração e segurança de acesso em suas APIs REST, foi implementado o TSS REST SERVER, com uma camada de autenticação para as APIs REST do TSS.

...

Aviso
titleImportante

As configurações detalhadas aqui são de uso exclusivo no produto TSS e em releases iguais ou superiores à 12.1.2410.



02. EXEMPLO DE CONFIGURAÇÃO SIMPLIFICADA
Âncora
simplificada
simplificada


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

...

Informações
titleImportante


Atenção à porta a ser utilizada, não poderá conflitar com nenhuma outra porta usado no mesmo appserver.ini.

O JOBTSSREST deverá ser incluído junto dos demais jobs presentes na seção [ONSTART] e, uma vez que esteja presente, o job referente ao REST 2.0 do Framework poderá ser removido.


03. EXEMPLO DE CONFIGURAÇÃO DETALHADA 
Âncora
p3
p3


Aqui serão detalhadas todas as seções e chaves possíveis de serem configuradas para um maior controle do(s) servidor(es) e serviço(s) REST do TSS REST SERVER.

Para para um melhor entendimento, serão quebradas por seções a serem incluídas no appserver.ini  do TSS.


...

Seção [TSSREST_CONFIG]
Âncora
config
config


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

...

ChaveDescriçãoValores PossíveisObrigatórioValor padrão
EnableResponsável por habilitar ou desabilitar a subida/criação do TSS REST SERVER (HTTPSERVER).

0=Desabilitado ou 1=Habilitado

Não

1

Servers

Nome das seções de servers com configuração de porta e URL. Por ela é possível definir um ou mais servidores, sendo assim, pode-se informar uma lista. Como exemplo será adotado o nome TSSREST_SERVER.

Nome livre

Sim


CharsetChave para definir com qual Codepage que será configurado no REST.

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. Para mais detalhes 

https://tdn.totvs.com/display/tec/Logs

0=Desabilitado ou 1=Habilitado

Não

0


Exemplo de configuração:


Bloco de código
themeEclipse
linenumberstrue
[TSSREST_CONFIG]
Enable=1
Servers=TSSREST_SERVER
Charset=UTF-8
Log=1



...

Seção Servers
Âncora
servers
servers


Define as configurações de cada servidor HTTP e/ou HTTPS informados na chave {SERVERS} na seção TSSREST_CONFIG.

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

...

ChaveDescriçã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 usaremos: 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
SslprotocolMinConfiguraçã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
SslprotocolMaxConfiguraçã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:


Bloco de código
themeEclipse
linenumberstrue
[TSSREST_SERVER]
Port=1323
URIs=TSSREST_URI
Security=1
SslprotocolMin=TLSv1.0
SslprotocolMax=TLSv1.3
SslCertificate=C:\certificados\https_rest\cert_rest.crt
SslCertificateKey=C:\certificados\https_rest\cert_rest.pem
SslPassPhrase=123456



...

Seção URIs
Âncora
uris
uris


Através da URIs conseguimos definir os Paths e definições de Thread Pool para os servidor(es) REST. Aqui está(ão) as definições da chave {URIs} da seção Servers.

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

...

ChaveDescriçã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
AllowOrigins

Define lista de domínios permitidos para acessar as APIs do servidor 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 servidor 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:


Bloco de código
themeEclipse
linenumberstrue
[TSSREST_URI]
URL=/rest/tss
RootPath=C:\tss\http-root\httprest\httpuri\
DefaultPage=index.html
Instances=1,10,2,1
CORSEnable=1
AllowOrigins=*
AllowMethods=POST,GET,DELETE,PUT
ExpirationTime=120
AcceptTimeOut=10



...

Seção [JOBTSSREST]


Esta seção define a configuração do JOB responsável por criar o(s) servidor(es) do TSS REST SERVER a ser incluido na seção ONSTART.

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

...

ChaveDescriçã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:


Bloco de código
themeEclipse
linenumberstrue
[JOBTSSREST]
main=TSSREST_START
environment=SPED



...

Seção [ONSTART]
Âncora
onstart
onstart


Nesta seção deverão ser incluídos os jobs padrão do TSS que irão ser executados, e adicionalmente o job JOBTSSREST de criação e subida do(s) servidor(es) REST do TSS REST SERVER.

...

Informações

Para incluir mais de um job no ONSTART basta informar as seções separadas por virgula. Exemplo:

[ONSTART]
JOBS=TSSTASKPROC, JOBTSSREST
REFRESHRATE=10


04. TESTE DE DISPONIBILIDADE DO TSS REST SERVER 
Âncora
p4
p4


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

...

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


05. OUTRAS CONFIGURAÇÕES DE AUTENTICAÇÃO TSS
Âncora
p5
p5