in reactive-streams/src/main/java/org/apache/camel/example/reactive/streams/ClientAPIRestExample.java [46:68]
public void setup() {
// Rest endpoint to retrieve all orders: http://localhost:8080/camel/orders
camel.process("rest:get:orders", exchange ->
Flux.from(exchange)
.flatMap(ex -> allOrders()));
// Rest endpoint to retrieve an order.
// Try: http://localhost:8080/camel/orders/1
// Or: http://localhost:8080/camel/orders/xxx
camel.process("rest:get:orders/{orderId}", exchange ->
Flux.from(exchange)
.map(ex -> ex.getIn().getHeader("orderId", String.class))
.flatMap(this::toOrderInfo)
.map(Object.class::cast)
.switchIfEmpty(
Flux.from(exchange)
.doOnNext(ex -> ex.getOut().setBody("Not found"))
.doOnNext(ex -> ex.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 404))
));
}