rx-java
Rénovation et RxJava
Recherche…
Configurer la mise à niveau et RxJava
Retrofit2 prend en charge plusieurs mécanismes d'exécution enfichables, dont RxJava.
Pour utiliser la mise à niveau avec RxJava, vous devez d'abord ajouter l'adaptateur Retrofit RxJava à votre projet:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
Vous devez ensuite ajouter l'adaptateur lors de la création de votre instance de mise à niveau:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
Dans votre interface lorsque vous définissez l'API, le type de retour doit être Observable par exemple:
public interface GitHubService {
@GET("users/{user}/repos")
Observable<List<Repo>> listRepos(@Path("user") String user);
}
Vous pouvez également utiliser Single au lieu de Observable .
Faire des requêtes en série
RxJava est pratique lorsque vous effectuez une requête série. Si vous souhaitez utiliser le résultat d'une requête pour en créer une autre, vous pouvez utiliser l'opérateur flatMap :
api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
.subscribe(/*do something with the result*/);
Faire des demandes parallèles
Vous pouvez utiliser l'opérateur zip pour faire une requête en parallèle et combiner les résultats, par exemple:
Observable.zip(api.getRepo(repoId1), api.getRepo(repoId2), (repo1, repo2) ->
{
//here you can combine the results
}).subscribe(/*do something with the result*/);