J'ai un service de mise à niveau qui contient l'interface suivanteFaire des appels api successifs avec amélioration et retour observables
public interface ApiService {
@GET("https://stackoverflow.com/users/me")
Observable<Account> authenticateUser(@Header("Authorization") String auth);
@GET("/membership/{userId}")
SubscriptionStatus getSubscriptionStatus(@Path("userId") String userId);
}
Je voudrais définir une méthode pour faire un appel api pour obtenir le compte qui contient le userId, puis utilisez cet ID pour effectuer un second appel d'API pour obtenir le statut d'abonnement des utilisateurs. SubscriptionStatus contient un booléen et si c'est vrai je voudrais que la méthode renvoie Observable.
Voilà comment je suis allé à ce sujet jusqu'à présent:
public Observable<Account> doLogin(ApiService service , String credentials) {
return service.authenticateuser(base64) // gets Account observable
.doOnNext(account -> {
currentAccount = account; // setting the Account Variable
})
.flatMap(account -> service.getSubscriptionStatus(account.getUserId())) // get Account Subscription status
... //unsure where to go from here I need to check
//the subscriptionStatus object and return account
//observable if condition is valid
}
Merci beaucoup cela a fonctionné, savez-vous comment je peux gérer et renvoyer des erreurs pour chaque appel API ? –