September 2019
Intermediate to advanced
668 pages
15h 59m
English
To be able to call the three APIs in parallel, the service implementation uses the static zip() method on the Mono class. The zip method is capable of handling a number of parallel requests and zipping them together once they all are complete. The code looks like this:
@Overridepublic Mono<ProductAggregate> getCompositeProduct(int productId) { return Mono.zip( values -> createProductAggregate((Product) values[0], (List<Recommendation>) values[1], (List<Review>) values[2], serviceUtil.getServiceAddress()), integration.getProduct(productId), integration.getRecommendations(productId).collectList(), integration.getReviews(productId).collectList()) .doOnError(ex -> LOG.warn("getCompositeProduct failed: ...