O que são?
O REST server possui recursos de Callback, definidos na sessão [User Exits], onde é possível configurar funções customizadas para serem executadas em sete (7) momentos específicos, sendo:
- dois (4) na infraestrutura do server:
- Criação da Thread [OnStart];
- Finalização da Thread [OnStop].
- Bloqueio de URN's disponibilizados pelo REST [OnAllow] ou [OnBlock].
- três (3) no atendimento da requisição HTTP:
- Escolha qual Thread executará a requisição HTTP [OnSelect];
- Tratamento dos erros de runtime [OnError].
- Tratamento das mensagens para todos os retornos [OnSend].
Sendo assim, ao informar o nome da função em uma dessas chaves, o tlppCore irá executar a função do usuário conforme sua funcionalidade proporcionando flexibilidade no uso do REST.
Necessário informar um nome válido de função e que esteja compilada no RPO correspondente no Environment do serviço REST, caso contrário, o tlppCore irá ignorar essa configuração e seguirá sem o desvio do Callback, ou dependendo da funcionalidade pode até impedir a inicializar do serviço REST.
Configuração
Observem o exemplo de configuração abaixo:
Nota: os trechos que estão ocultos foram substituídos por ... para facilitar a leitura. A configuração completa você pode consultar
[HTTPSERVER] Enable=1 Servers=HTTP_SRV ... [HTTP_SRV] locations=HTTP_ROOT ... [HTTP_ROOT] ThreadPool=THREAD_POOL ... [THREAD_POOL] UserExits=TP_UEX ... Slaves=SLAVE_01,SLAVE_02 [TP_UEX] OnBlock=U_OnBlock ;OnAllow=U_OnAllow OnSelect=U_OnSelect OnError=U_OnError [SLAVE_01] UserExits=SLAVES_UEX ... [SLAVE_02] UserExits=SLAVES_UEX ... [SLAVES_UEX] OnStart=U_OnStart OnStop=U_OnStop OnError=U_OnError
Nesse exemplo de configuração, optamos por algo simples, ou seja, deixamos para a Thread principal [THREAD_POOL] a responsabilidade de escolha das threads de atendimento, por isso configuramos a função de OnSelect, configuramos também a lista de URNs que desejamos bloquear usando [OnBlock ou OnAllow].
Importante: Para o mesmo ambiente só podemos configurar OnAllow ou OnBlock, pois ambos servem para bloquear determinadas URN para uso geral.
E para as Threads de Slaves a responsabilidade de atendimento das requisições, dessa forma configuramos para elas as funções de OnStart, OnStop e OnSend.
Note que o tratamento de erro, função de OnError, deixamos configurado para todas as Threads, pois é comum à todos.
Sendo assim, começamos agora a demonstrar como se utiliza a cada um dos Callback.
Como se utilizam?
Para cada User Exits, utilize sua documentação específica:
1 - OnBlock
2 - OnAllow
3 - OnStart
4 - OnStop
5 - OnSelect
6 - OnError
7 - OnSend