Что такое Retrofit Client

«Что такое Retrofit Client» — вопрос из категории Сети, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Retrofit Client — это HTTP-клиент для Android и Java, который преобразует REST API в Java/Kotlin интерфейсы. Он упрощает сетевые запросы, используя аннотации для определения эндпоинтов и параметров.

Ключевые особенности:

  • Автоматическая сериализация/десериализация (например, JSON ↔ объекты через Gson/Moshi).
  • Поддержка синхронных и асинхронных запросов (Call, Coroutines, RxJava).
  • Гибкость: кастомизация через OkHttp Interceptors (логирование, авторизация).

Пример:

interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: Int): User
}

val retrofit = Retrofit.Builder()
    .baseUrl("https://api.example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build()

val service = retrofit.create(ApiService::class.java)
val user = service.getUser(1) // Suspend-функция

Плюсы: Минимум boilerplate-кода, высокая читаемость, интеграция с популярными библиотеками.