Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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 sete (47) 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.

...


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, 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 aqui


Bloco de código
[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].

Nota

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