0
ログインページを持つプロジェクトがあります。このページでは、ユーザーが「サインイン」をクリックした後、checkUserNameにリクエストを送信して(そのユーザーがログインしているかどうかを確認して)、次に認証する必要があります。rxjavaでauthの2つのリクエストを処理する
インタフェース:
@POST("endpoint")
Flowable<AccountResponse> auth(@Body AuthRequestBody authRequestBody);
@POST("endpoint")
Flowable<CheckUsernameResponse> checkUserName(@Body CheckUserNameRequest checkUserNameRequest);
RestService:
public Flowable<AccountResponse> auth(String login, String password) {
return api.auth(new AuthRequestBody(login, password)).compose(handleError());
}
public Flowable<CheckUsernameResponse> checkUserName(String login) {
return api.checkUserName(new CheckUserNameRequest(login)).compose(handleError());
}
とRx:私はRxの中で確認することができますどのように
public Flowable<AccountResponse> auth(String login, String password) {
return checkUsername(login).flatMap(checkUsernameResponse -> restService.auth(login, password))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(loginResponse -> {
tokenManager.saveToken(loginResponse.getToken());
});
}
public Flowable<CheckUsernameResponse> checkUsername(String login) {
return restService.checkUserName(login)
.subscribeOn(Schedulers.io());
}
、私はこれを持っているコードで
最初のクエリがOKならば? (checkUsername)。つまり、そのAPIはエラーmsgを返さなかったし、UserIdはOKであり、isAccessGrantedはtrueであり、次に2回目の要求をauthに送信するだけですか?