У меня есть два api для вызова. как они обернуты Hystrix Observable:Как составить Hystrix наблюдаемые с помощью java8 и rxjava
здесь один, например:
@HystrixCommand()
public Observable<String> getAvailableFlightBookings() {
return new ObservableResult<String>() {
@Override
public String invoke() {
URI uri = registryService.getServiceUrl("flight-booking-service", "http://localhost:8081/flight-booking-service");
String url = uri.toString() + "/flights/list";
ResponseEntity<String> resultStr = restTemplate.getForEntity(url, String.class);
return resultStr.getBody();
}
};
}
Я следующий код, который я изо всех сил, чтобы закончить:
public DeferredResult<FlightDetails> getAllFlightDetails() {
//Calling previous defined functions
Observable<String> availableFlightBookings=flightBookingIntegrationService.getAvailableFlightBookings();
Observable<String> couponId=couponIntegrationService.getCoupon();
Observable<String> details = Observable.zip(
..?
}
Я не уверен, как ссылаться на следующие API:
flightBookingIntegrationService.getAvailableFlightBookings();
couponIntegrationService.getCoupon();
и заполнить конечный результат (FlightDetails) us ING в Observable.zip
FlightDetails:
public class FlightDetails {
String couponId;
String availableFlightList;
..
}
Спасибо, луч.
BTW Если вы просто хотите создать новый экземпляр «FlightDetails», вы можете использовать ссылку на метод вместо lambda –
Не могли бы вы объяснить, почему использование DeferredResult? – rayman
И смысл использования (доступный, купон). – rayman