Você está na página 1de 3

16/04/2021 01.

Configuração - Frameworksp - TDN


Páginas / … / 01. Web Services REST/Server

01. Configuração
Criado por Fabio De Moraes Rocha, última alteração por Jandir Deodato De Souza Silva em 25 set, 2020
Tempo aproximado para leitura: 4 minutos
O web service REST do AdvPL não utiliza as seções HTTP e WebServices utilizadas para o configurar o modelo SOAP.
Apesar disso o REST também utiliza working threads para atender as requisições recebidas também pelo protocolo HTTP.

Observações

O protocolo HTTP do REST não atende a outros tipos de requisições como o HTTP do SOAP (que também atende arquivos estáticos, APW e APL)

 A chave MAXSTRINGSIZE é obrigatória na seção GENERAL com valor mínimo 10 para que o REST suporte requisições com mais de 1Mb

 Alteração de comportamento
A partir da release 12.1.31 do Protheus, a ser liberada em Abril de 2021, o comportamento padrão de autenticação de WebServices SOAP e REST será alterado. A partir
desta versão, caso a chave Security não seja informada no arquivo appserver.ini, os serviços serão iniciados exigindo autenticação de usuário. Caso seja necessário
trabalhar sem autenticação, a chave deverá ser configurada com o valor 0 (Exemplo: Security=0).

A função HTTP_START que prepara o Application Server como HTTP para REST, devendo ser configurada na seção ONSTART:

[GENERAL]
MAXSTRINGSIZE=10

[ONSTART]
JOBS=HTTPJOB
REFRESHRATE=120

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=environment

Seção HTTPV11

Para habilitar o HTTP para REST criar a seção abaixo no appserver.ini:

[HTTPV11]
Enable=1
Sockets=HTTPREST

Parâmetro Descrição Obrigatório

Enable Indica se o HTTP esta habilitado x

Sockets Seções com configuração de porta e URL (pelo menos uma seção) x

A chave Sockets referencia a(s) seção(ões) com a configuração de porta e URL que a mesma ira atender, permitindo que o Application Server seja configurado com mais de uma
porta HTTP do REST:

[HTTPV11]
Enable=1
Sockets=HTTPREST,HTTPREST2

Seções Sockets

Exemplo de configuração de uma seção Sockets:

[HTTPREST]
Port=8080
IPsBind=
URIs=HTTPURI
Security=1

Parâmetro Descrição Obrigatório

Port Porta HTTP x

IPsBind Indica os IPs que serão atendidos por essa porta, se não informado atenderá qualquer IP / DNS associado ao servidor

URIs Seções com configuração de URL e ambiente (pelo menos uma seção) x

Security Indica se a autenticação de requisição esta habilitada x

Observação

O HTTP do REST verifica existência do campo Authorization no HEADER da requisição, porém a autorização é realizada pelo framework do produto que esta utilizando o
protocolo

Para facilitar o desenvolvimento e testes pode-se configurar a chave Security com valor 0 (zero) para desabilitar a autenticação

https://tdn.totvs.com/pages/viewpage.action?pageId=185747842 1/3
16/04/2021 01. Configuração - Frameworksp - TDN
A chave URIs referencia a(s) seção(ões) com a configuração da URL que a porta irá atender, permite também que seja configurado com mais de uma URL:

[HTTPREST]
Port=8080
IPsBind=
URIs=HTTPURI,HTTPURI2
Security=1

Seções URIs

Exemplo de configuração de uma seção URIs:

[HTTPURI]
URL=/rest
PrepareIn=
Instances=1,1
Public=classe/path/get1,classe2/path/gety,classe3/path/post
NoTenant=classe/path/get2,classe2/path/getv,classe3/path/post2

Parâmetro Descrição Obrigatório

URL Indica o endereço que será atendido x


Nesse exemplo http://localhost:8080/rest

Preparein Informações para preparação do ambiente das working threads

Instances Configuração de inicialização de working threads x

Public Chave pública que contém listas de EndPoints que não possuem autenticação

NoTenant Ao ser usada não será validada as empresas/filiais, apenas a autenticação do usuário

Observações

A preparação de ambiente da chave PrepareIn é realizada pelo framework do produto que esta utilizando o protocolo

A chave Instances é configurada como no HTTP do SOAP

A chave Public precisa ser utilizada com muita cautela, visto que ela desliga a segurança do endpoint permitindo acesso a qualquer um que conheço o endereço

Conexões TLS no AppServer


A partir da versão 17.3.0.20 do AppServer e LIB Label 20200727, o REST Server terá suporte ao TLS1.1 e TLS1.2.
Para que a configuração fique de acordo com o SSL já utilizado pelo binário, utilize o meio de configuração já existente.
No INI do REST, na Seção HTTPREST, adicione a chave a ser utilizada:
TLS1_0=1
TLS1_1=1
TLS1_2=1

Valores válidos

Valor Descrição

0 (default) Desabilita

1 Habilita

Exemplo
[HTTPREST]
Port=8040
URIs=HTTPURI
SECURITY=1
SSL2=0
SSL3=1
TSL1_0=0
TSL1_1=1
TSL1_2=1

A chave TLS1 foi mantida por compatibilidade, exemplo de utilização:

Valores válidos

Valor Descrição

0 (default) Desabilita

1 TLS 1.0

2 TLS 1.1

3 TLS 1.2

https://tdn.totvs.com/pages/viewpage.action?pageId=185747842 2/3
16/04/2021 01. Configuração - Frameworksp - TDN
Exemplo
[HTTPREST]
Port=8040
URIs=HTTPURI
SECURITY=1
SSL2=0
SSL3=1
TLS1 = 3

 A chave TLS1 está mantida em modo de compatibilidade. Isso significa que a atualização da aplicação irá funcionar adequadamente, porém esta chave deve ser substituída
pelas novas versões TLS1_0, TLS1_1 e TLS1_2. Caso quaisquer das novas chaves do protocolo TLS sejam encontradas no arquivo de configuração, a aplicação não
reconhecerá as informações contidas na TLS1.

Veja também
Instances
Seção OnStart -- 29403
Seção [general], chave MaxStringSize

framework rest server http api framespdev

Política de privacidade Termos de uso

https://tdn.totvs.com/pages/viewpage.action?pageId=185747842 3/3

Você também pode gostar