Ответ
Да, работал с REST API в Android-приложениях. Использовал Retrofit, OkHttp и Moshi/Gson для сетевых запросов.
Пример с Retrofit:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: Int): User
}
val retrofit = Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(MoshiConverterFactory.create())
.build()
val api = retrofit.create(ApiService::class.java)
val user = api.getUser(1) // suspend-функция в корутине
Ключевые моменты:
- Обработка ошибок (HTTP-коды, сетевые исключения)
- Сериализация/десериализация JSON
- Аутентификация (OAuth, токены)
- Кеширование и офлайн-режим (Room + Retrofit)
- Оптимизация (пагинация, мультипарт-загрузки)