fbpx

Course Content

Total learning: 10 lessons Time: 2 hours

Создание 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, существует еще несколько:

  • Gsoncom.squareup.retrofit2:converter-gson
  • Jacksoncom.squareup.retrofit2:converter-jackson
  • Moshicom.squareup.retrofit2:converter-moshi
  • Protobufcom.squareup.retrofit2:converter-protobuf
  • Wirecom.squareup.retrofit2:converter-wire
  • Simple XMLcom.squareup.retrofit2:converter-simplexml
  • Scalars (primitives, boxed, and String): com.squareup.retrofit2:converter-scalars

Дессериализатор converter-gson используется вместе с GSON для обработки результата. Более подробно про работу с GSON можно прочитать в статье 5 Фишек работы с GSON о которых вы не знали.

В следующем уроке, используя созданный Retrofit клиент сделаем запрос в API и получим список фильмов.