Используется ли REST API для общения с сервером
Что проверяют
Вопрос звучит как «да или нет», но интервьюер хочет услышать, как у вас устроен сетевой слой: библиотеки, обработка ошибок, авторизация, работа без сети. Следом часто спрашивают, почему REST, а не GraphQL или WebSocket, и что будет с запросом при повороте экрана.
Как отвечать
Скажите, что да, в большинстве приложений это REST поверх HTTPS с JSON, и опишите стек:
- Retrofit поверх OkHttp: интерфейс с
suspend-методами и аннотациями@GET,@POST,@Path,@Query. Колбэкиenqueueв новом коде заменены корутинами; - сериализация: kotlinx.serialization или Moshi. Они учитывают nullability Kotlin, а Gson обходит конструктор, и поле, объявленное не-null, может оказаться
null; - интерсепторы OkHttp: заголовок
Authorization,Authenticatorдля обновления токена по ответу 401,HttpLoggingInterceptorтолько в debug-сборке, таймауты, кэш черезCacheиCache-Control; - архитектура: вызовы в репозитории, DTO маппятся в доменные модели, ошибки сводятся к
sealed-типу:HttpExceptionс кодом,IOExceptionпри отсутствии сети, ошибка разбора. Запросы запускаются вviewModelScope, поэтому поворот экрана их не обрывает, а уход с экрана отменяет; - офлайн: Room как единый источник истины, экран подписан на
Flowиз базы, синхронизация в фоне через WorkManager.
Добавьте про безопасность: для приложений с targetSdk 28 и выше открытый HTTP по умолчанию запрещён, исключения задаются в Network Security Config, для чувствительных приложений есть CertificatePinner. Если проект мультиплатформенный, упомяните Ktor Client.
Альтернативы называйте с условием: GraphQL (Apollo Kotlin) при сложных выборках, gRPC при строгих контрактах, WebSocket или FCM для событий в реальном времени.
Где спотыкаются
Называют REST-ом любой JSON по HTTP и не могут объяснить ресурсы, идемпотентность PUT и DELETE и смысл кодов ответа.
Упоминают CSRF как риск для мобильного клиента. Атака завязана на куки в браузере, для приложения с токеном в заголовке актуальнее хранение токена и перехват трафика.
Пишут логирование тела запросов в релизной сборке. Токены и персональные данные уезжают в logcat и в отчёты о падениях.