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();
}