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*/);


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow