2
respostas

[Projeto] agendando consulta para uma clínica veterinária

import 'package:http/http.dart';
import 'dart:convert';

void main() {
  requestDataAsync("Dra. Patrícia Gomes"); 
}

Future<void> requestDataAsync(String veterinario) async {
  print("Iniciando requisição.........");

  String url =
      "https://raw.githubusercontent.com/alura-cursos/dart_assincronismo_api/aula05/.json/vet.json";

  try {
    Response response = await get(Uri.parse(url));

    if (response.statusCode == 200) {
      List<dynamic> accounts = jsonDecode(response.body);

      // Filtra todas as consultas da veterinária informada
      List<Map<String, dynamic>> consultas = accounts
          .where((element) => element["veterinarian"] == veterinario)
          .cast<Map<String, dynamic>>()
          .toList();

      print("Resposta recebida da API.........");

      if (consultas.isNotEmpty) {
        print("Foram encontradas ${consultas.length} consultas para $veterinario:\n");

        for (var consulta in consultas) {
          print("Data: ${consulta["appointment"]}");
          print("Pet: ${consulta["pet_name"]}");          
          print("-----------------------------");
        }
      } else {
        print("Nenhuma consulta encontrada para '$veterinario'.");
      }
    } else {
      print("Erro na requisição. Código HTTP: ${response.statusCode}");
    }
  } catch (e) {
    print("Erro no método async/await: $e");
  }

  print("Fim da função async/await.\n");
}
2 respostas

Oi, Karina.

Agradeço por compartilhar.

Gostei da forma como você estruturou a busca assíncrona, principalmente ao filtrar as consultas da veterinária escolhida. Seu código está organizado e mostra boa compreensão do fluxo com async e await. Continue explorando esse tipo de operação, pois é fundamental para lidar com APIs.

Alura

Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Oi, Karina!

Reforço o que a Lorena comentou: a estruturação do seu código e o uso do async/await ficaram excelentes. Parabéns pelo projeto!