Какие знаешь особенности построения REST-клиента

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

Ответ

Вот ключевые аспекты построения REST-клиента на Android:

  1. HTTP-клиент – обычно используется Retrofit (рекомендуется) или HttpURLConnection. Retrofit упрощает работу с API через аннотации:
interface ApiService {
    @GET("users/{id}")
    suspend fun getUser(@Path("id") userId: String): User
}
  1. Сериализация – JSON через Gson/Moshi. Важно обрабатывать null-поля и кастомные адаптеры.

  2. Обработка ошибок – перехват HTTP-кодов (4xx/5xx) через Interceptor или try-catch для suspend-функций.

  3. Потоки данных – Flow/RxJava для реактивных обновлений UI.

  4. Кеширование – OkHttp Cache или Room для оффлайн-доступа.

  5. Авторизация – Interceptor для добавления токенов в headers.

  6. Логирование – HttpLoggingInterceptor для дебага запросов.

  7. Тестирование – MockWebServer для эмуляции API.