Untitled

 avatar
unknown
dart
2 years ago
973 B
7
Indexable
  // Nota: Questa funzione non ritorna più una List ma il singolo "Volo"
  static Future<Volo> getFlight() async {
    final url = Uri.parse(
        "https://airlabs.co/api/v9/flight?flight_iata=LH1703&api_key=eaeb946d-0639-414b-a74e-03f2ca21b488");

    final risposta = await http.get(url);

    // jsonData attualmente è una Map contenente 2 chiavi: "request" e "response"
    final jsonData = json.decode(risposta.body);

    // Accedo a response, che adesso è una Map (e non una list, è qui il tuo errore)
    // Puoi vedere che è una Map anche nel JSON (apri da browser il link a airlabs usato sopra).
    // Una Map (Dart) in Javascript si chiama Object ed ha il seguente formato: "{...}", una list invece: "[...]".
    final response = jsonData["response"]

    // Posso fare subito adesso Volo.fromMap per il fatto che "fromMap" su "Volo" si aspetta di prendere una Map, che è esattamente
    // il valore di response.
    return Volo.fromMap(response);
  }