Lors de l'utilisation de rxjava 1.x, je retournais Observable<Void>
pour gérer la réponse vide de la modification:
@POST( "login" )
Observable<Void> getToken( @Header( "Authorization" ) String authorization,
@Header( "username" ) String username,
@Header( "password" ) String password );
Mais puisque rxjava 2.x n'émettra rien avec Void
y a-t-il une bonne pratique pour gérer ces réponses vides?
Completable a été conçu pour de tels cas. Il est disponible depuis RxJava 1.1.1. De la documentation officielle:
Représente un calcul différé sans aucune valeur mais uniquement une indication de complétion ou d'exception. La classe suit un modèle d'événement similaire à Reactive-Streams: onSubscribe (onError | onComplete)?
Il suffit donc de changer le type de retour de votre méthode:
@POST("login")
Completable getToken(@Header("Authorization") String authorization,
@Header("username") String username,
@Header("password") String password);
Et réécrivez votre abonné, par exemple:
apiManager.getToken(auth, name, pass)
...
.subscribe(() -> {
//success
}, exception -> {
//error
});
Une autre solution est:
@POST("login")
Observable<Response<Void>> getToken( @Header( "Authorization" ) String authorization,
@Header( "username" ) String username,
@Header( "password" ) String password );