Solicitações de encadeamento no Retrofit + RxJava
Eu tenho 2 APIs que eu quero fazer solicitação em sequência e armazenar seus dados no SQLite.
Primeiro, quero fazer uma solicitação à APIA
e armazena seus dados na tabela SQLa
. Em seguida, faça uma solicitação à APIB
e armazene seus dados na tabelab
e alguns dados na tabelaa_b
. Os dados armazenados ema_b
é de pedidoB
sozinho.
Como posso fazer isso usando o RxJava. Eu li em algum lugar sobre o uso do flatMap para isso, algo como isto
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;
});
});
Se eu não estivesse usando funções lambda, isso pareceria tão feio quanto as chamadas aninhadas normais. Essa é a melhor maneira de fazer isso?