Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Consumo de serviço Rest

Boa tarde. Gostaria de consumir um serviço REST HTTP para usar seu conteúdo como fonte de dados para a minha rota, ou seja, usar o conteúdo json de um serviço REST ao invés do arquivo, como segue no tutorial de exemplo. Preciso apenas para consumir esse serviço uma única vez por integração, sem polling. Tem algum componente específico para isso? Abraço.

1 resposta

Olá, Jonatan.

Você pode fazer algo como:

from("direct:loja")
.to("http://localhost:8088/fj36-livraria/loja/livros/mais-vendidos-jackson")
.unmarshal(jackson)
.transform(body().method("size"))
.process(new Processor() {
    public void process(Exchange ex) throws Exception {
        Message m = ex.getIn();
        List<Livro> livros = (List<Livro>) m.getBody();
        System.out.println("livros: " + livros.size());
        m.setBody(livros);
    }
})

E disparar a chamada com:

ProducerTemplate producer = ctx.createProducerTemplate();
producer.request("direct:loja", null);