Какова цель Retrofit и RxJava при получении данных с сервера? - PullRequest
0 голосов
/ 28 ноября 2018

Я видел много примеров / учебных пособий в интернете, даже здесь, о stackoverflow при получении данных с внутреннего сервера с использованием Retrofit и RxJava, но я не могу понять, какова цель каждой из этих технологий.

Если кто-нибудь может объяснить мне, я буду благодарен.Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Retrofit помогает обеспечить высокоуровневую абстракцию для сетевого интерфейса.

Модификация превращает ваш HTTP API в интерфейс Java.

Так что вам не нужно делать это все время вручную: просто аннотируйте ...

RxJava представляет концепцию реактивного программирования , а RxJava2 является любимой зависимостью в androidсообщества.Говоря о его связи с модернизацией: по умолчанию ретрофит возвращает Call из каждого запроса, который для асинхронного выполнения требует предоставления обратного вызова, который впоследствии будет вызван после завершения операции.Адаптер RxJava2 для Retrofit делает это проще: он удаляет обратный вызов и дает вам более точный контроль над окружением потока и отменой задачи, поэтому вы можете просто сделать следующее:

myApi.doSomething()
    .subscribeOn(Schedulers.Io()) //run network request on Io thread pool
    .observeOn(AndroidSchedulers.mainThread()) //emit the result in android's main thread
    .subscribe(result -> processResult(result));

В то время как объявление вашего интерфейса работает с Retrofitбудет просто как то так:

public interface MyApi {

    @GET("/endpoint")
    public Single<Result> doSomething();

}
0 голосов
/ 28 ноября 2018

Retrfit - известная сетевая библиотека для Android.Он обрабатывает сетевое подключение и другие связанные с сетью вещи (пожалуйста, ссылка: https://futurestud.io/tutorials/retrofit-getting-started-and-android-client). RxJava - это концепция шаблона подписчика и наблюдателя для получения результатов обновления для конкретного обновления / события.

...