Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Inclusão da documentação da chave instances

...

Apesar disso o REST também utiliza working threads para atender as requisições recebidas também pelo protocolo HTTP.

Observações
O protocoloco 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)

...

Aviso
titleAlteração de comportamento

A partir da LIB Label 20201019release 12.1.33 do Protheus, a ser liberada em Outubro de 20202021, 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 Exemplo: Security=0).



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

...

Sem Formato
[HTTPV11]
Enable=1
Sockets=HTTPREST
ParametroParâmetroDescriçãoObrigatório
EnableIndica se o HTTP esta habilitadox
SocketsSeções com configuração de porta e URL (pelo menos uma seção)x

...

Sem Formato
[HTTPREST] 
Port=8080
IPsBind=
URIs=HTTPURI
Security=1
Public=classe/path/get1,classe2/path/gety,classe3/path/post
Notenant=classe/path/get2,classe2/path/getv,classe3/path/post2
Chave pública que contém listas de EndPoints que não possuem autenticação
ParâmetroParametroDescriçãoObrigatório
PortPorta HTTPx
IPsBindIndica os IPs que serão atendidos por essa porta, se não informado atenderá qualquer IP / DNS associado ao servidor
URIsSeções com configuração de URL e ambiente (pelo menos uma seção)x
SecurityIndica se a autenticação de requisição esta habilitadaxPublic
NoTenantAo ser usada não será validada as empresas/filiais, apenas a autenticação do usuário.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

...

Sem Formato
[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âmetroParametroDescriçãoObrigatório
URLIndica o endereço que será atendido
Nesse exemplo http://localhost:8080/rest
x
PrepareinInformações para preparação do ambiente das working threads
InstancesConfiguração de inicialização de working threadsx
PublicChave pública que contém listas de EndPoints que não possuem autenticação
NoTenantAo ser usada não será validada as empresas/filiais, apenas a autenticação do usuário
ObservaçõesObservaçoes
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. Documentação em Instances
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.

Foi implementada também a versão TLS1.3 na lib do Protheus Label 20221128

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
TLS1_3=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
TSL1_3=1



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

Valores válidos

Valor

Descrição

0 (default)Desabilita
1TLS 1.0
2TLS 1.1
3TLS 1.2

Exemplo

[HTTPREST]
Port=8040
URIs=HTTPURI
SECURITY=1
SSL2=0
SSL3=1
TLS1 = 3

Informações

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.

Aviso
titleAlerta de risco

Fique atento ao utilizar o parâmetro de configuração com a chave Security=0, pois isso fará com que as integrações (APIs) não exijam autenticação, consequentemente dados do seu ambiente poderão ser consultados sem qualquer controle de autorização.




Veja também

Instances 

Seção OnStart -- 29403

...