La estructura para realizar una llamada desde flutter a una api y obtener datos es de la siguiente manera:
primero declaramos e inicializamos una variable con la ruta a la api, en este caso la llamo uri:
final uri = 'https://nombre/ruta/api';
Depués declaro las cabeceras, tipo-contenido
final headers = {
'Content-Type': 'application/json',
};
A continuación genero la llamada y guardo la respuesta en una variable a la que he llamado response.
final response = await http.get(Uri.parse(uri), headers: headers);
Para saber si la llámada se realizado correctamente, compruebo el statusCode e imprimo por consola en modelo json la respuesta de datos con la siguiente línea de código.
if (response.statusCode == 200) {
print(json.decode(response.body));
} else {
print('Error en la solicitud: ${response.statusCode}');
}
El código completo de la llamada GET lo muestro a continuación:
Future<void> getApi() async {
final uri = 'https://nombre/ruta/api';
final headers = {
'Content-Type': 'application/json',
};
final response = await http.get(Uri.parse(uri), headers: headers);
if (response.statusCode == 200) {
print(json.decode(response.body));
} else {
print('Error en la solicitud: ${response.statusCode}');
}
}
Espero que les sirva de ayuda !! Les deseo un feliz día.