I am new to android and I have a scenario where I want to get get data from multiple api. Let suppose api_a, api_b, api_c,
Merge operator combines multiple observable into one
Set up Base URL of API:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.client(oktHttpClient.build())
.build();
Now setup two observables for the two network requests:
Observable Observable1 = ApiClient.getApiService().getApi_1();
Observable Observable2 = ApiClient.getApiService().getApi_2();
Now we use RxJava's mergemethod to combine our two Observables:
Observable.merge(Observable1, Observable2 )
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(JsonElement value) {
Log.d("RESPONSE", "onNext:=======" + value);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
Log.d("RESPONSE", "DONE==========");
}
});