В примере, показанном ниже, у меня есть 3 вызова внешних служб. Каждый из них заполняет объект, который будет отправлен при последнем вызове: serviceFour.callServiceFour(resultMap).
Код: Выделить всё
@Service
public class ExternalServiceImpl {
private final ServiceOne serviceOne;
private final ServiceTwo serviceTwo;
private final ServiceThree serviceThree;
private final ServiceFour serviceFour;
public Mono makeSequentialCalls() {
Map resultMap = new LinkedHashMap();
return serviceOne.callServiceOne()
.doOnNext(response -> resultMap.put("service1", response))
.flatMap(response -> serviceTwo.callServiceTwo())
.doOnNext(response -> resultMap.put("service2", response))
.flatMap(response -> serviceThree.callServiceThree())
.doOnNext(response -> resultMap.put("service3", response))
// Send the response
.flatMap(response -> serviceFour.callServiceFour(resultMap));
}
}
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/787 ... ctive-java