Project Reactor
Project Reactor é um framework reativo que implementa a especificação Reactive Streams. O principal foco do Project Reactor
é o suporte a aplicações assíncronas de baixa latência e alta performance, com uso de back-pressure.
O java-restify
fornece suporte para os dois principais objetos do Reactor, Flux
e Mono
, que podem ser utilizados como retorno de método.
Instalação
O suporte para o Reactor está na dependência java-restify-reactor
. Uma vez presente no classpath
, os handlers
serão automaticamente registrados.
Maven
Gradle
Utilização
Tipos suportados
Flux
Flux é um objeto reativo que representa a emissão de uma sequência de valores (0-N).
Ao utilizar o Flux
como retorno de método, o java-restify
irá assumir que a resposta da requisição representa uma coleção.
Por exemplo, digamos que o endpoint
a ser consumido retorne um JSON; se a resposta for um array (uma coleção), você pode utilizar o Flux
; se a resposta for um único objeto, utilize um Mono
(ver abaixo).
Mono
Mono é um objeto reativo que representa a emissão de um único valor (0-1).
O Mono
é o retorno adequado caso a resposta da requisição represente um único objeto (assim como o Flux
é o mais adequado para uma sequência/coleção de objetos). Esse objeto também suporta retornos nulos (como uma resposta vazia).
Configuração
Em todos os casos acima, o java-restify
irá executar a requisição em uma thread
separada usando o suporte do Reactor para processamento assíncrono, através do objeto Scheduler.
Por padrão, o Scheduler
será criado a partir do método Schedulers.elastic, que é o mais adequado para requisições HTTP.
Caso essa configuração não atenda às necessidades da sua aplicação, desligue a descoberta automática de handlers
e registre-os manualmente:
Last updated
Was this helpful?