Árvore de páginas

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 quatro (4) momentos específicos, sendo:

  • dois (2) na infraestrutura do server:

    • Criação da Thread [onStart];

    • Finalização da Thread [onStop].

  • dois (2) no atendimento da requisição HTTP:

    • Escolha qual Thread executará a requisição HTTP [onSelect];

    • Tratamento dos erros de runtime [onError].

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.

Nota: 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.


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 aqui

[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]
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 Select e para as Threads de Slaves a responsabilidade de atendimento das requisições, dessa forma configuramos para elas as funções de Start e Stop.

Note que o tratamento de erro, função de Error, 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 - onStart

2 - onStop

3 - onSelect

4 - onError

  • Sem rótulos