➜ Cargar Categorias
Cómo obtener y almacenar categorías desde una API en Kotlin con Retrofit | Aprende a usar Retrofit en Kotlin para realizar llamadas asíncronas a una API y almacenar datos en una base de datos local. Este ejemplo muestra cómo obtener una lista de categorías y gestionar las respuestas exitosas y fallidas de manera eficiente.
El método se encarga de obtener una lista de categorías desde una API y luego almacenar esas categorías en una base de datos local. A continuación, te lo explico paso a paso:
Descripción del método getListCategories()
:
-
Llamada a la API (
getListCategories().enqueue
):- Este método realiza una llamada asíncrona a la API usando Retrofit. La llamada se realiza a través de
enqueue
, lo que significa que no bloqueará el hilo principal de la aplicación. - El tipo esperado de respuesta es una lista de objetos
Category
(ArrayList<Category>
).
- Este método realiza una llamada asíncrona a la API usando Retrofit. La llamada se realiza a través de
-
Callback
onResponse
:- Validación de la respuesta exitosa (
response.isSuccessful
):- Si la respuesta de la API es exitosa (por ejemplo, un código de estado HTTP 200), se continúa con el procesamiento.
- Iteración sobre el cuerpo de la respuesta (
response.body()
):- El cuerpo de la respuesta contiene una lista de categorías, que se itera utilizando un bucle
for
.
- El cuerpo de la respuesta contiene una lista de categorías, que se itera utilizando un bucle
- Inserción en la base de datos:
- Por cada categoría en la respuesta, se inserta en la base de datos local usando el método
db.insertCategory
. - Se crea un objeto
Category
con los atributosid
yname
antes de almacenarlo.
- Por cada categoría en la respuesta, se inserta en la base de datos local usando el método
- Impresión de las categorías:
- Por cada categoría, se imprime su nombre en la consola para registro.
- Validación de la respuesta exitosa (
-
Callback
onFailure
:- Si ocurre un error en la llamada a la API (fallo en la red, problemas con el servidor, etc.), se ejecuta el método
onFailure
. - Se utiliza
t.printStackTrace()
para imprimir la traza del error, lo que puede ser útil para depurar el problema.
- Si ocurre un error en la llamada a la API (fallo en la red, problemas con el servidor, etc.), se ejecuta el método
Código:
kotlin
apiInterface.getListCategories().enqueue(object : Callback<ArrayList<Category>> {
override fun onResponse(
call: Call<ArrayList<Category>>,
response: Response<ArrayList<Category>>
) {
if (response.isSuccessful) {
// Procesa la respuesta exitosa
response.body()?.let { categoryList ->
for (item in categoryList) {
db.insertCategory(
Category(
item.id,
item.name
)
)
println("categoria: " + item.name)
}
}
}
}
override fun onFailure(call: Call<ArrayList<Category>>, t: Throwable) {
// Manejo de errores
t.printStackTrace()
}
})
Flujo del método:
- Se realiza una llamada asíncrona a la API para obtener una lista de categorías.
- Si la llamada es exitosa, las categorías se insertan en la base de datos local.
- Si hay un fallo en la llamada, el error se registra en la consola.
Este patrón es común en aplicaciones que consumen APIs para mantener una copia local de los datos obtenidos del servidor, lo que mejora la capacidad de respuesta de la aplicación y permite el uso offline.
495 visitas
Capítulo 8 – Cargar Productos »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar