Skip to content

Instantly share code, notes, and snippets.

@adamcmwilson
Created January 13, 2017 05:44
Show Gist options
  • Save adamcmwilson/64babb1d751610f5791663b2cbbe1dca to your computer and use it in GitHub Desktop.
Save adamcmwilson/64babb1d751610f5791663b2cbbe1dca to your computer and use it in GitHub Desktop.
Chained Api calls with RxJava
public class Example {
private String auth_token;
private void chainApiCalls() throws Exception {
api.getToken()
.doOnNext(token -> auth_token = token)
.flatMap(api::getPersonNumber)
.flatMap(person_number -> api.getUserInfo(auth_token, person_number))
.doOnCompleted(() -> auth_token = null)
.subscribe(userInfo -> {
// do something with userInfo here...
});
}
interface Api {
Observable<String> getToken();
Observable<PersonNumber> getPersonNumber(String token);
Observable<UserInfo> getUserInfo(String token, PersonNumber person);
class UserInfo {
}
class PersonNumber {
}
}
Api api = new Api() {
@Override public Observable<String> getToken() { return null; }
@Override public Observable<PersonNumber> getPersonNumber(String token) { return null; }
@Override public Observable<UserInfo> getUserInfo(String token, PersonNumber person) {
return null;
}
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment