Retrofit para Java: guía completa con ejemplos prácticos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Retrofit para Java: Cliente HTTP type-safe para Android y Java

1. ¿Qué es Retrofit y para qué sirve?

Retrofit es una biblioteca potente y elegante para Java (y Android) que convierte una API HTTP en una interfaz de Java. En lugar de escribir manualmente código repetitivo para crear solicitudes HTTP, procesar respuestas y analizar JSON, Retrofit hace todo ese trabajo por ti. Serializa automáticamente tus objetos Java a JSON (u otro formato) para enviarlos al servidor y deserializa las respuestas del servidor de vuelta a objetos Java. Esto hace que el código sea limpio, legible y fácil de mantener.

¿Para qué sirve? Imagina que necesitas crear una aplicación que se comunique con una API REST (por ejemplo, la API de GitHub, OpenWeatherMap o tu propio servidor). Sin Retrofit, tendrías que usar clases de bajo nivel como HttpURLConnection o HttpClient, formar URLs manualmente, configurar cabeceras, manejar códigos de error y analizar JSON. Esto no solo es tedioso, sino que también es propenso a errores. Retrofit resuelve estos problemas proporcionando una forma declarativa de describir la API. Simplemente creas una interfaz con métodos, los anotas (por ejemplo, @GET, @POST), y Retrofit genera automáticamente la implementación de esa interfaz.

Retrofit es el estándar de facto para trabajar con HTTP en el mundo Android y Java. Se integra estrechamente con OkHttp (para una gestión eficiente de la red) y Gson/Moshi (para la serialización JSON). La biblioteca soporta solicitudes síncronas y asíncronas, carga de archivos, autenticación, almacenamiento en caché y muchas otras funcionalidades. Gracias a su simplicidad y flexibilidad, Retrofit se utiliza en miles de aplicaciones y servicios en todo el mundo.

2. Instalación

Retrofit se distribuye a través de Maven Central. Para usarlo en tu proyecto Java (por ejemplo, con Maven o Gradle), agrega las dependencias correspondientes. Ten en cuenta que también necesitarás un convertidor para la serialización (normalmente Gson o Moshi) y el propio OkHttp (que Retrofit usa internamente).

Maven (pom.xml)

<!-- Retrofit -->
<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>retrofit</artifactId>
    <version>2.9.0</version>
</dependency>

<!-- Convertidor Gson (para JSON) -->
<dependency>
    <groupId>com.squareup.retrofit2</groupId>
    <artifactId>converter-gson</artifactId>
    <version>2.9.0</version>
</dependency>

<!-- OkHttp (normalmente se incluye automáticamente, pero puedes especificar la versión) -->
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.12.0</version>
</dependency>

Gradle (build.gradle)

dependencies {
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'
}

Importante: Las versiones pueden quedar obsoletas. Siempre verifica las versiones más recientes en el sitio oficial o en el repositorio de Maven Central. Si usas otro convertidor (por ejemplo, Moshi o Jackson), reemplaza converter-gson por el artefacto correspondiente (converter-moshi, converter-jackson).

3. Inicio rápido — ejemplo mínimo funcional

Vamos a escribir un ejemplo sencillo que obtenga una lista de usuarios desde el servidor JSONPlaceholder (una API REST de prueba).

Paso 1: Crea un modelo de datos (POJO)

// User.java
public class User {
    private int id;
    private String name;
    private String username;
    private String email;

    // Getters (obligatorios para Gson)
    public int getId() { return id; }
    public String getName() { return name; }
    public                    

Recommendations