Цепные вызовы API в RxJava и Retrofit - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть сервис для загрузки фильмов:

Single<List<Movie>> fetchAll();

и сервис для получения трейлеров для каждого фильма:

Single<List<Video>> fetchByMovieId(@Path("movie_id") long movieId);

После извлечения всех фильмов я хотел бы также получить их трейлеры и вернуть список объектов, которые составляют фильм и все его трейлеры. Как правильно достичь этого, используя RxJava?

1 Ответ

0 голосов
/ 25 апреля 2018

пс: Вам следует избегать делать много запросов.Попробуйте сделать это по требованию.

yourClient.fetchAll()
          .subscribeOn(Schedulers.io())
          .observeOn(AndroidSchedulers.mainThread())
          .toObservable()
          .flatMapIterable(movies -> movies)
          .flatMap(movie -> yourClient.fetchByMovieId(movie.getId()))
          .toList()
          .subscribe()...
...