Course Content
-
Подготовка
-
Учимся работать с Retrofit и GSON
-
Всё вместе. Создание UI и отображение ответа от сервера
-
Использование RxJava 2.0 для создания вызовов В этом разделе вы научитесь использовать RxJava 2.0 для создания вызовов к серверу и получения ответа
Создание Retrofit клиента
В этом уроке мы создадим Retrofit клиент для вызова методов API.
Для этого необходимо использовать Builder(). Для создание экземпляра Retrofit лучше всего использовать делегированное свойство by lazy, то есть отложенную инициализацию.
object MovieApiClient { const val BASE_URL = "https://api.themoviedb.org/3/" val apiClient: MovieApiInterface by lazy { val retrofit = Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build() return@lazy retrofit.create(MovieApiInterface::class.java) } }
BASE_URL – это базовый URL который будет подставляться в каждый запрос, описанный в MovieApiInterface. C помощью метода addConverterFactory можно указать различные дессериализаторы для обработки ответа результата. Кроме GsonConverterFactory, существует еще несколько:
- Gson:
com.squareup.retrofit2:converter-gson
- Jackson:
com.squareup.retrofit2:converter-jackson
- Moshi:
com.squareup.retrofit2:converter-moshi
- Protobuf:
com.squareup.retrofit2:converter-protobuf
- Wire:
com.squareup.retrofit2:converter-wire
- Simple XML:
com.squareup.retrofit2:converter-simplexml
- Scalars (primitives, boxed, and String):
com.squareup.retrofit2:converter-scalars
Дессериализатор converter-gson используется вместе с GSON для обработки результата. Более подробно про работу с GSON можно прочитать в статье 5 Фишек работы с GSON о которых вы не знали.
В следующем уроке, используя созданный Retrofit клиент сделаем запрос в API и получим список фильмов.