Encadenamiento de solicitudes en Retrofit + RxJava
Tengo 2 API a las que quiero hacer una solicitud en secuencia y almacenar sus datos en SQLite.
Primero quiero hacer una solicitud a la APIA
y almacenar sus datos en la tabla SQLa
. Luego haga una solicitud a la APIB
y almacenar sus datos en la tablab
y algunos datos en la tablaa_b
. Los datos almacenados ena_b
es de solicitudB
solo.
¿Cómo puedo hacer esto usando RxJava? Leí en alguna parte sobre el uso de flatMap para esto, algo como esto
apiService.A()
// store in DB here? How? maybe use map()?
.flatMap(modelA -> {
// or maybe store modelA in DB here?
return apiService.B().map(modelB -> {
storeInDB()l // store B here ?
return modelB;
});
});
Si no estuviera usando funciones lambda, esto se vería tan feo como las llamadas anidadas normales. ¿Es esta una mejor manera de hacerlo?