Lección 10 de 16 · Lectura y práctica
Consumo de APIs REST con Dio
Lección práctica para aplicar Consumo de APIs REST con Dio dentro de Desarrollo de Apps Móviles con Flutter - Nivel Intermedio, con criterios de decisión, ejemplo guiado, ejercicio y checklist de salida.
Del concepto a la práctica
Taller de esta lección
Consumir una API requiere separar transporte, conversión y estado visual. Una respuesta HTTP correcta no garantiza que cada campo tenga el formato esperado; por eso conviene convertir un mapa a un modelo y representar por separado carga, éxito y error.
Ejemplo resuelto
Supón una respuesta autorizada con un elemento: [{"id":"r1","title":"Leer","done":false}]. El adaptador convierte id, title y done a un modelo local. Si la respuesta es 500, el repositorio devuelve un error tipado y la pantalla conserva la lista anterior en lugar de reemplazarla por una lista vacía.
Comprueba que la respuesta sea una lista y que cada objeto tenga ID y título de tipo string y done de tipo bool. La cadena "false" no es el booleano false. Dio distingue errores de transporte y respuestas rechazadas mediante DioException; la política de estados aceptados depende de validateStatus. Prueba el adaptador con una entrada válida, un campo de tipo incorrecto y una respuesta 500 simulada. Decide explícitamente si muestras datos anteriores marcados como tales o una pantalla de error.
Pruébalo
Define el mapa de entrada con
r1.Convierte sus campos al modelo.
Simula respuesta 500 sin datos.
Decide qué estado visual queda en cada caso.
Error frecuente: capturar cualquier excepción y mostrar éxito vacío. Corrígelo conservando el error y distinguiendo ausencia válida de fallo de transporte.
Comprueba tu resultado
Con la respuesta válida, espera un modelo r1 titulado Leer. Con 500, espera estado de error y la lista previa intacta. No cuentes una respuesta fallida como cero tareas.

Mapa de prácticaEl navegador envía una solicitud a la API. El servidor valida la operación y consulta los datos; después devuelve una respuesta que el navegador puede mostrar. La base de datos se comunica con el servidor y no directamente con el navegador.
Ver la infografía en tamaño completo ↗Fuentes para profundizar
Sigue con Desarrollo de Apps Móviles con Flutter - Nivel Intermedio
Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.
Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.