Histórico da Página
Aviso | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||
Recurso disponível somente em:
|
O onAllow é o inverso de onBlock, ou seja, através da função de callback onAllow, o usuário/desenvolvedor pode definir quais serviços REST ( Endpoints + método ) serão permitidos para uso ou somente ocultados na listagem de serviços disponíveis.
Esse recurso é útil quando queremos manter disponíveis somente alguns serviços REST para determinado ambiente.
Nota | ||
---|---|---|
| ||
|
Parâmetro Recebido
A função customizada recebe somente 1 (um) parâmetro, sendo:
1 - oList
Classe contendo valores da execução e métodos para informar que determinado Endpoint + Método deve ser permitido ou oculto.
Section | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Métodos Sets
|
Retorno
Sugerimos que o retorno seja NULL pois todo e qualquer retorno será ignorado.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function U_onAllow( oList )
local cEndpoint as character
local cServiceName as character
local nServicePort as numeric
local cThreadPoolName as character
local cUserData as character
local jApis as json
// Use os valores abaixo conforme sua necessidade de implementação
// Embora você sempre receberá tais valores, seu uso é opcional.
cServiceName := oList:getServiceName()
nServicePort := oList:getServicePort()
cThreadPoolName := oList:getThreadPoolName()
cUserData := oList:getUserData()
jApis := oList:getApiList()
// Para permitir ou ocultar algum serviço, utilize os métodos Sets
cEndpoint := '/exemplo1/urn'
oList:allow( cEndpoint, 'get' )
oList:allow( cEndpoint, 'post' )
oList:hide( cEndpoint, 'put' )
cEndpoint := '/exemplo2/urn'
oList:allow( cEndpoint, 'get' )
return |
Conclusão
É muito simples permitir/ocultar um serviço REST, basta utilizar um dos métodos mencionados acima indicando a ação (allow | hide) e o Endpoint e seu método.
Note que sempre é preciso informar o Endpoint e Método para cada ação, sendo assim, poderemos permitir todos os métodos de um mesmo Endpoint, ou permitir uns e outros não, conforme necessidade.
Informações | ||
---|---|---|
| ||
Devido à criticidade de disponibilizar dados indesejados, caso ocorra alguma "exception" na criação da lista o AppServer não será reiniciado. Porém, se essa criticidade não for a sua realidade e ainda assim queira que o AppServer seja iniciado, mesmo que disponibilizando todos os serviços REST, é possível configurar o REST indicando que o OnAllow seja executado em modo "Soft", conforme abaixo:
|