I recently learned to use merge where I combined 4 API requests into one output. (Reference: https://stackoverflow.com/q/51262421/1083093)
Restapi.class
/************/
@GET("app/dashboard")
Observable<CategoryHomeModel[]> getCategories(@HeaderMap Map<String, String> headers);
@GET("app/wallet/balance")
Observable<WalletBalance> getWalletBalance(@HeaderMap Map<String, String> headers);
@GET("/app/swap/myrateswaps")
Observable<SwapSettings> rateMySwap(@HeaderMap Map<String, String> headers);
@GET("/app/getsettings")
Observable<Settings> getSettings(@HeaderMap Map<String, String> headers);
/************/
I have Four observables
Observable<CategoryHomeModel[]> categoriesObservable = retrofit
.create(Restapi.class)
.getCategories(prepareHeaders())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<WalletBalance> walletObservable = retrofit
.create(Restapi.class)
.getWalletBalance(prepareHeaders())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<Settings> settingsObservable = retrofit
.create(Restapi.class)
.getSettings(prepareHeaders())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Observable<SwapSettings> ratingsObservable = retrofit
.create(Restapi.class)
.rateMySwap(prepareHeaders())
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread());
Answer I found was useful using Merge function
Extending the Question above:
- I have a similar question: How can I wait for first Observable to complete moving to second to third to fourth. Since I am using a variable obtained from first observable to pass it into second and so on till fourth observable
CONCAT - I searched is a good way to achieve this i think.
How to use CONCAT as i have used MERGE above ?