Histórico da Página
...
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 |
---|
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 |
Aviso | ||
---|---|---|
| ||
A partir da release 12.1.33 do Protheus, a ser liberada em Outubro 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). |
Aviso | ||
---|---|---|
| ||
A partir da release 12.24.10 do Protheus, a ser liberada em Outubro de 2024, a chave Security não poderá ser alterada, ou seja, todos os serviços REST e SOAP precisarão trabalhar com autenticação. |
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â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 |
...
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 |
ParâmetroParametro | 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 | 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çã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âmetroParametro | Descrição | Obrigatório |
---|---|---|
URL | Indica o endereço que será atendido Nesse exemplo http://localhost:8080/rest | x |
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çõ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
TLS1_0=0
TLS1_1=1
TLS1_2=1
TLS1_3=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 |
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 | ||
---|---|---|
| ||
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. |
Informações |
---|
Os valores de OnStart, OnConnect e OnExit não precisam ser informados, essas informações já têm valores padrões controlados pelo Framrwork. |
Veja também
...