Âncora | ||||
---|---|---|---|---|
|
Para que o sistema TSS possibilite uma maior configuração e segurança de acesso às suas APIs RESTVisando maior segurança às APIs REST do TSS, foi implementado o servidor TSS REST SERVER, que conta com uma camada a mais de segurança, usando autenticação para todas as APIs REST do TSS.
Este documento tem o objetivo de ilustrar a configuração do TSS REST SERVER a ser realizada no arquivo appserver.ini do TSS.
O TSS REST SERVER é o substituto para o REST 2.0 do Framework Protheus como configuração de REST para (e somente) o TSS.
Para que isso, será necessário realizar a troca do REST 2.0 presente nos releases de TSS 12.1.2310 ou versões inferiores, para o novo TSS REST SERVER, que será o REST oficial e sustentada para release do TSS igual ou superiores a oficialmente disponibilizado e sustentado na release 12.1.2410 ou superiores do TSS.
As configurações de REST presentes em releases do TSS inferiores à 12.1.2410 poderão ser mantidas mas não terão suporte a autenticação de APIs em REST.
A seguir, serão detalhadas as configurações do veremos como configurar o novo TSS REST SERVER de forma detalhada.
Aviso | ||
---|---|---|
| ||
As configurações detalhadas aqui são de uso exclusivo do no produto TSS e em releases iguais ou superiores à 12.1.2410. |
...
...
Âncora | ||||
---|---|---|---|---|
|
Neste capitulo capítulo iremos abordar as configurações mínimas ou simplificada para o correto funcionamento do novo TSS REST SERVER.
Para isso, basta informar as seguintes seções e chaves no arquivo de appserver.ini do TSS.
...
[TSSREST_CONFIG]
Servers=TSSREST_SERVER[TSSREST_SERVER]
Port=13221323
URIs=TSSREST_URI
[TSSREST_URI]
URL=/restapi/tss
Instances=1,4,1,1
[JOBTSSREST]
main=TSSREST_START
environment=SPED[ONSTART]
JOBS=JOBTSSREST
REFRESHRATE=10
...
Informações | ||
---|---|---|
| ||
Atenção à porta a ser utilizada, não poderá conflitar com nenhuma outra porta usada 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. |
...
Âncora | ||||
---|---|---|---|---|
|
...
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 responsável por iniciar as configurações do TSS REST SERVER (HTTPSERVER).
De todos os nomes de seções que serão tratados neste documento, esta é a única seção que se deve manter o nome TSSREST_CONFIG.
Abaixo serão detalhadas as chaves desta seção:
...
0=Desabilitado ou 1=Habilitado
...
1
...
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
...
Exemplos: ASCII, UTF-8, ANSI e ISO-8859-1
...
UTF-8
...
https://tdn.totvs.com/display/tec/Logs
...
0=Desabilitado ou 1=Habilitado
...
0
Bloco de código | ||||
---|---|---|---|---|
| ||||
[TSSREST_CONFIG]
Enable=1
Servers=TSSREST_SERVER
Charset=UTF-8
Log=1 |
...
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.
Abaixo serão detalhadas as chaves desta seção:
...
Campo livre
...
Para uma configuração mais especifica das seções e chaves do TSS REST SERVER acessar: TSS REST SERVER 1.0 - Documentação Detalhada
Âncora | ||||
---|---|---|---|---|
|
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
[TSSREST_SERVER]
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 |
...
Através da URIs
Os nomes aqui preenchidos podem variar conforme desejado, neste caso vamos tratar como [TSSREST_SERVER] apenas para exemplo.
Abaixo serão detalhadas as chaves desta seção:
...
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.
...
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/
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
[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 |
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.
Abaixo serão detalhadas as chaves desta seção:
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
[JOBTSSREST]
main=TSSREST_START
environment=SPED |
...
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.
Ficando assim a configuração:
Bloco de código | ||||
---|---|---|---|---|
| ||||
[ONSTART]
JOBS=JOBTSSREST
REFRESHRATE=10 |
Informações |
---|
Para incluir mais de um job no ONSTART basta informar as seções separadas por virgula. Exemplo: [ONSTART] |
...
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:
Subida do TSS REST SERVER com sucesso:
Indicativo da(s) URL(s) do(s) TSS REST SERVER mapeado(s):
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:
Esta imagem somente será apresentado se o arquivo index.html estiver presente na pasta indicado na seção URIs
. Caso contrário será apresentada a seguinte tela: Âncora uris uris
Caso haja algum problema ao subir o servidor TSS REST SERVER, ao tentar informar a URL no navegador/browser será exibida a seguinte mensagem:
Isto significa que houve um problema na subida do TSS REST SERVER e as APIs não serão disponibilizadas para uso. A causa pode estar na configuração errônea do appserver.ini ou alguma tipo de conflito porta ou URI informados.
Âncora | ||||
---|---|---|---|---|
|