Api Service
Importar la Clase
Asegúrate de importar la clase ApiService en tu archivo Dart:
import 'package:academic/services/api_service.dart';Realizar una solicitud GET
Para realizar una solicitud GET a una API, utiliza la función httpGet de la siguiente manera:
final response = await ApiService().httpGet("/end/point");httpGettoma una URL como argumento y realiza una solicitud GET a esa URL.- La respuesta se almacena en la variable
response, la cual es una instancia dehttp.Response.
Realizar una solicitud POST
Para realizar una solicitud POST a una API con un cuerpo JSON, utiliza la función httpPost de la siguiente manera:
Object body = jsonEncode(<String, dynamic>{ "id_action": 12, "message": "Aqui va un mensaje",});final response = await ApiService().httpPost("/end/point", body);httpPosttoma dos argumentos: la URL de la API y el cuerpo de la solicitud en formato JSON.- El cuerpo de la solicitud se define como un objeto JSON utilizando
jsonEncode. - La respuesta se almacena en la variable
response, la cual es una instancia dehttp.Response.
Manipulación de la Respuesta
Una vez que hayas realizado la solicitud, puedes manipular la respuesta según sea necesario. Esto podría incluir el análisis del contenido JSON de la respuesta, el manejo de errores y la actualización de la interfaz de usuario con los datos recibidos.
Aquí hay un ejemplo básico de cómo puedes analizar una respuesta JSON y acceder a sus datos:
if (response.statusCode == 200) { // La solicitud fue exitosa (código de estado 200). final jsonResponse = json.decode(response.body);
// Acceder a los datos específicos en la respuesta usando el modelo creado previamente. // Si recibirás muchos datos de la petición, has una lista vacía, y añade cada modelo. List<modelo> list = []; jsonDecode(response.body)['data'].forEach((v) => list.add(modelo.fromJson(v)));
// Si solo será uno lo que recibirás, recíbelo de la siguiente forma: modelo.fromJson(jsonDecode(response.body)['data'][0]);
// Realizar acciones adicionales con los datos...} else { // La solicitud falló con un código de estado diferente de 200. throw 'Hubo un error al hacer la petición';}Error
Dentro de la clase ApiService() hay validaciones por si el dispositivo se queda sin internet, mostrando un modal con el mensaje Es necesario estar conectado al internet para usar la aplicación., y retornando la siguiente respuesta:
http.Response("", 204)Si se mostrara una respuesta de error, si la respuesta no es 200, retorna un throw ‘mensaje de error.’. No uses un throw Exception().