Что это такое
Retrofit — HTTP-клиент для Android и JVM, который превращает описание API в типобезопасные вызовы. Вместо ручной сборки URL и разбора ответов разработчик описывает сервис интерфейсом.
Проект появился в экосистеме Square рядом с OkHttp и решает соседнюю задачу: OkHttp отвечает за сетевой слой, а Retrofit помогает удобно описывать прикладной HTTP API.
Главная задача Retrofit — связать аннотации, параметры, конвертеры тела ответа и адаптеры вызовов так, чтобы код клиента оставался читаемым.
Что внутри
Внутри проекта есть библиотека, документация на сайте, координаты Maven `com.squareup.retrofit2:retrofit`, поддержка Java 8+ и Android API 21+, а также сведения про R8/ProGuard.
Retrofit обычно используют вместе с конвертерами JSON и OkHttp. В результате интерфейс сервиса становится контрактом между приложением и сервером.
Как используют
Обычный сценарий: описать методы API, указать путь и параметры, создать Retrofit-инстанс и вызвать метод из репозитория данных приложения.
Для Android это особенно удобно, потому что сетевой код перестает расползаться по экранам и становится отдельным слоем, который легче тестировать и менять.
Пример
Описание HTTP API как интерфейса
Пример показывает главную идею Retrofit: точка API описывается методом интерфейса, а библиотека строит вызов вокруг аннотаций.
interface GitHubService {
@GET("users/{user}/repos")
suspend fun listRepos(@Path("user") user: String): List<Repo>
}
Сильные стороны
Сильная сторона Retrofit — ясность. По интерфейсу можно быстро понять, какие запросы делает приложение и какие типы данных оно ожидает.
Еще одно преимущество — зрелость связки с OkHttp, interceptors, логированием, авторизацией и кешем. Retrofit не заменяет сетевую политику, а делает API-уровень аккуратнее.
Ограничения
Ограничение в том, что типобезопасность не спасает от плохого контракта. Ошибки серверной схемы, нестабильные поля и неясные статусы нужно обрабатывать отдельно.
Также важно не превращать интерфейс Retrofit в огромную свалку точек API. Для большого приложения сервисы лучше делить по доменным областям.
Кому подойдет
Retrofit подойдет Android- и JVM-командам, которым нужен понятный слой HTTP API поверх надежного сетевого клиента.
Для маленького одноразового запроса можно обойтись OkHttp напрямую, но при росте API интерфейсный подход быстро начинает окупаться.
В каталоге Retrofit важен как библиотека, которая задала очень привычный стиль сетевой разработки в Android-мире.
Практический старт — описать один сервис, подключить JSON-конвертер, добавить обработку ошибок и только потом расширять клиент на остальные части API.
В реальном Android-приложении Retrofit особенно полезен рядом с четкой моделью ошибок. Команда заранее решает, какие ответы превращаются в исключения, где обновляется токен, как логируются сбои и какие типы данных считаются стабильной частью контракта.
Хороший слой Retrofit обычно сопровождается небольшими правилами команды: как именовать сервисы, где хранить DTO, что считать сетевой ошибкой и где переводить ответ API в доменную модель.