Created
January 13, 2017 05:44
-
-
Save adamcmwilson/64babb1d751610f5791663b2cbbe1dca to your computer and use it in GitHub Desktop.
Chained Api calls with RxJava
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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