¿Qué es Retrofit y para qué sirve?
\n\nRetrofit es un cliente HTTP con seguridad de tipos para Java y Kotlin, desarrollado por la empresa Square. Es una de las bibliotecas más populares para trabajar con APIs REST en el ecosistema Android. Retrofit permite a los desarrolladores realizar solicitudes HTTP a servidores remotos de forma fácil y elegante, transformando automáticamente las respuestas JSON en objetos Kotlin y viceversa.
\n\n¿Para qué sirve Retrofit?
\n- \n
- Simplificación del trabajo con APIs: En lugar de escribir código extenso con HttpURLConnection u OkHttp, usted define una interfaz con anotaciones y Retrofit genera la implementación automáticamente. \n
- Serialización/Deserialización automática: Gracias a la integración con convertidores (Gson, Moshi, Kotlinx Serialization), Retrofit transforma automáticamente JSON en objetos Kotlin. \n
- Soporte para varios métodos HTTP: GET, POST, PUT, DELETE, PATCH, HEAD y OPTIONS. \n
- Gestión de cabeceras y parámetros: Fácil añadir cabeceras dinámicas o estáticas, parámetros query y parámetros path. \n
- Asincronía: Soporte para corrutinas Kotlin (funciones suspend) e interfaces Callback. \n
- Integración con OkHttp: Retrofit utiliza OkHttp como motor HTTP, lo que brinda acceso a potentes capacidades de interceptación de solicitudes (interceptors). \n
Retrofit es ideal para aplicaciones Android que interactúan con servicios web RESTful: desde aplicaciones meteorológicas simples hasta redes sociales complejas.
\n\nInstalación de Retrofit en un proyecto Kotlin
\n\nA diferencia de Python (donde se usa pip), en proyectos Kotlin/Android las dependencias se gestionan a través de Gradle. Agregue las siguientes líneas al archivo build.gradle.kts (o build.gradle) de su módulo (generalmente app):
// build.gradle.kts (Module :app)\ndependencies {\n // Biblioteca principal de Retrofit\n implementation("com.squareup.retrofit2:retrofit:2.9.0")\n \n // Convertidor para trabajar con JSON (Gson)\n implementation("com.squareup.retrofit2:converter-gson:2.9.0")\n \n // Convertidor alternativo (Moshi)\n // implementation("com.squareup.retrofit2:converter-moshi:2.9.0")\n \n // Para soporte de corrutinas (funciones suspend)\n implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3")\n \n // OkHttp (generalmente ya incluido, pero se puede agregar explícitamente)\n implementation("com.squareup.okhttp3:okhttp:4.12.0")\n implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")\n}\n\n\nImportante: Después de agregar las dependencias, presione "Sync Now" en Android Studio para descargar las bibliotecas.
\n\nInicio rápido: ejemplo de código
\n\nVamos a crear una aplicación simple que obtenga una lista de publicaciones desde JSONPlaceholder (una API de prueba gratuita).
\n\nPaso 1: Cree una clase data para la respuesta
\n\ndata class Post(\n val userId: Int,\n val id: Int,\n val title: String,\n val body: String\n)\n\n\nPaso 2: Defina la interfaz de la API
\n\ninterface ApiService {\n @GET("posts")\n suspend fun getPosts(): List<Post>\n \n @GET("posts/{id}")\n suspend fun getPostById(@Path("id") postId: Int): Post\n}\n\n\nPaso 3: Cree el cliente Retrofit
\n\nobject RetrofitClient {\n private const val BASE_URL = "https://jsonplaceholder.typicode.com/"\n \n val instance: ApiService by lazy {\n Retrofit.Builder()\n .baseUrl(BASE_URL)\n .addConverterFactory(GsonConverterFactory.create())\n .build()\n .create(ApiService::class.java)\n }\n}\n\n\nPaso 4: Úselo en una Activity o ViewModel
\n\nclass MainActivity : AppCompatActivity() {\n override fun onCreate(savedInstanceState: Bundle?) {\n También en la biblioteca
Cliente Elasticsearch para Go (Golang): guía completa para trabajar con ES
Métricas de Prometheus en TypeScript: guía completa de client.js
Cliente Redis para Kotlin: Lettuce y Kreds — comparación y ejemplos
Trabajo con CSV en Go (Golang): guía completa del paquete encoding/csv