Как получить и объединить данные полученные с сервера? С первого запроса я получаю список с url, а после я должен по каждому url получить данные
Получаю список с https://api.github.com/repositories, но в элементе списка нужно показать дополнительную информацию которая берется https://api.github.com/repos/<REPO_full_name>. Как мне правильно получать данные?
Я предполагаю что можно сделать след. образом:
- получить список
- пройтись по списку и получать данные Есть ли вариант получше?
Ответы (1 шт):
Автор решения: ЮрийСПб
→ Ссылка
Можно вот так попробовать (получить список, получить детали по каждому элементу списка и всё вместе получить в итоге):
getList()
.flatMap(items -> Observable.fromIterable(items))
.flatMap(item -> getItemData(item))
.toList()
.subscribe(list -> {});
Если же вам надо что-то более сложное, например получить список, сразу отобразить что пришло и по мере загрузки отдельных элементов их отображать, то можно как-то так:
getList()
.doOnSucess(items -> {/*show all*/})
.flatMap(items -> Observable.fromIterable(items))
.subscribe(item-> {/*show item details*/});