Consumo de APIs con Flutter y biblioteca HTTP
Clase 14 de 26 • Curso de Flutter
Resumen
Trabajar con APIs en Flutter es fundamental para integrar aplicaciones con datos externos. Aquí exploraremos cómo configurar la biblioteca HTTP, construir una llamada GET para obtener datos de un simulador, y procesar las respuestas en formato JSON de manera eficiente.
¿Cómo configurar la biblioteca HTTP en tu proyecto?
-
Instalación de dependencias:
- Agrega la dependencia
http
a tu archivopubspec.yaml
con la versión deseada (por defecto, se recomienda la más reciente):dependencies: http: ^latest_version
- Ejecuta el comando
flutter pub get
para instalar y actualizar las dependencias.
- Agrega la dependencia
-
Importación de la biblioteca:
- Incluye el paquete HTTP en tu archivo Dart:
import 'package:http/http.dart' as http;
- Incluye el paquete HTTP en tu archivo Dart:
¿Cómo crear una función para hacer solicitudes GET?
-
Definición de la función:
- Crea una función asíncrona que retorne un
Future
de tipo lista:Future<List<dynamic>> fetchRecipes() async { // Implementación aquí }
- Crea una función asíncrona que retorne un
-
Construcción de la URL:
- Define la dirección del simulador local configurada en Mocoon:
final Uri url = Uri.parse('http://localhost:3000/recetas');
- Define la dirección del simulador local configurada en Mocoon:
-
Realización de la solicitud:
- Realiza una llamada GET y captura la respuesta:
final response = await http.get(url);
- Realiza una llamada GET y captura la respuesta:
¿Cómo procesar la respuesta JSON?
-
Conversión a JSON:
- Usa la biblioteca
dart:convert
para decodificar el cuerpo de la respuesta:import 'dart:convert'; final jsonData = json.decode(response.body);
- Usa la biblioteca
-
Extracción de datos específicos:
- Navega por los objetos JSON para extraer los datos relevantes:
final recipes = jsonData['recetas'] as List; return recipes;
- Navega por los objetos JSON para extraer los datos relevantes:
¿Cómo integrar los datos en la interfaz?
-
Cargar datos al inicializar la pantalla:
- Invoca la función
fetchRecipes
en el métodoinitState
o equivalente para cargar los datos al inicio.
- Invoca la función
-
Desplegar la información:
- Usa herramientas de depuración como Chrome DevTools para verificar las solicitudes y respuestas:
- Abre la consola en Google Chrome.
- Inspecciona las llamadas de red bajo la sección “Network”.
- Filtra por el nombre de la función (e.g.,
fetch
).
- Usa herramientas de depuración como Chrome DevTools para verificar las solicitudes y respuestas:
-
Estructuración del diseño:
- Renderiza los datos JSON obtenidos directamente en tu aplicación Flutter para construir una lista dinámica o cualquier otra representación gráfica.