Конечная точка API RESTful возвращает ответ JSON.
Ответ JSON состоит из 20 различных элементов JSON-Array. Каждый элемент имеет URL-адрес изображения.
После получения первого ответа я намереваюсь пройти через JSON-Array и извлечь изображения, используя Retrofit Dynamic URLs.
class Content { var items List<Item>? = null }
class Item { var image: String? = null
var imageBytes: ByteArray? = null
}
interface RestApi { @GET fun getContent(): Single<Content>
@GET fun getImageBytes(@Url url: String): Single<ResponseBody>
}
restApi.getContent()
.map { content: Content -> {
content.items?.forEach { item ->
restApi.getImageBytes(item.image)
.subscribe(object : DisposableSingleObserver<ResponseBody>() {
onSuccess(body: ResponseBody) {
item.imageBytes = body.getBytes()
}
onError(e: Throwable) { // TODO Implementation }
})
}
}
}
Как сделать задержку метода getContent () перед отправкой до тех пор, пока все вызовы getImageBytes () также не завершатся успешно или с ошибкой?