Ответ
Retrofit использует несколько ключевых сущностей:
- Интерфейсы – определяют API-эндпоинты с аннотациями (
@GET,@POSTи т.д.). - Retrofit.Builder – конфигурирует клиент (базовый URL, конвертеры, адаптеры).
- Call – инкапсулирует HTTP-запрос и ответ (синхронный/асинхронный).
- Converter.Factory – преобразует данные (например, Gson, Moshi).
- Interceptor – модифицирует запросы/ответы (логирование, заголовки).
- OkHttpClient – низкоуровневый HTTP-клиент (по умолчанию в Retrofit).
Пример интерфейса:
interface ApiService {
@GET("users/{id}")
suspend fun getUser(@Path("id") userId: Int): User
}
Для корутин можно использовать suspend или Flow, для RxJava – Observable<T>.