1
resposta

Camel não devolve o body para o postman

Olá galera, eu queria perguntar o que fazer para o body ser retornado da sub-rota abaixo.

from("direct:reading-files")
                .routeId("reading-filtered-files-from-s3")
                .process(ReadingFile())
                .aggregate(constant(true), AggregationStrategies.bean(this.schedulesAggregator, "aggregateByDate"))
                .completionSize(header("numberOfFiles"))
                .convertBodyTo(String::class.java)
                .setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
                .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200))
                .log("{body}")

Eu fiz um endpoint no camel, e vejo o body no .log(), mas não recebo nada no postman. Cheguei a achar que o payload era grande, mas fiz um teste mudando para um json pequeno, e mesmo assim não consegui

Alguém tem alguma dica?

1 resposta

Olá Marcos, tudo bem?

No trecho de código que você compartilhou, você está utilizando a função log("{body}") para exibir o corpo da mensagem no log do Apache Camel. No entanto, isso não significa que o corpo será automaticamente retornado como resposta para o Postman.

Para retornar o corpo da mensagem como resposta para o Postman, você precisa usar a função to("direct:output") ou to("mock:output") (ou qualquer outro endpoint de saída desejado) após o log.

Por exemplo:

from("direct:reading-files")
    .routeId("reading-filtered-files-from-s3")
    .process(ReadingFile())
    .aggregate(constant(true), AggregationStrategies.bean(this.schedulesAggregator, "aggregateByDate"))
    .completionSize(header("numberOfFiles"))
    .convertBodyTo(String::class.java)
    .setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
    .setHeader(Exchange.HTTP_RESPONSE_CODE, constant(200))
    .log("{body}")
    .to("direct:output") // ou outro endpoint de saída desejado