Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Lista de exercícios - Mão na Massa;

Seguindo o exercício proposto, o programa Mão na Massa foi desenvolvido para acessar uma base online de receitas por meio de uma API HTTP, usando o pacote http para buscar os dados em formato JSON. Depois que a resposta é recebida, o conteúdo é decodificado e o Random escolhe de forma aleatória o “prato do dia”. No terminal, são exibidos o nome, os ingredientes e o modo de preparo, com quebras de linha para facilitar a leitura. O fluxo segue etapas simples: importar bibliotecas, fazer a requisição, converter o JSON, selecionar a receita e mostrar o resultado. O uso do .then() garante que o código só continue após a resposta da API, mostrando o tratamento assíncrono na prática.

import 'dart:convert'; // Biblioteca para trabalhar com JSON
import 'dart:math'; // Biblioteca para gerar números aleatórios
import 'package:http/http.dart'; // Biblioteca para trabalhar com HTTP

void buscarReceitas() {
  String url =
      "https://gist.githubusercontent.com/JACursino/30e0162d0a77c849f990d4f4808ec4a7/raw/f238d3bbe5fc6df3a4431fa1ec879f6fc10dfa18/recipes.json";

  Future<Response> respostaFutura = get(Uri.parse(url));

  respostaFutura.then((Response resposta) {
    if (resposta.statusCode == 200) { // verifica se a resposta foi bem-sucedida
      List<dynamic> listaReceitas = jsonDecode(resposta.body);

      // seleção aleatória da receita do dia
      int indiceAleatorio = Random().nextInt(listaReceitas.length);
      var receitaDoDia = listaReceitas[indiceAleatorio];

      print("\n----------------------------------------");
      print("             Receita do Dia");
      print("----------------------------------------");
      print("Nome: ${receitaDoDia['nome']}");

      print("\nIngredientes:");
      for (var ingrediente in receitaDoDia['ingredientes']) {
        print("- $ingrediente");
      }

      print("\nModo de preparo:");
      print(receitaDoDia['preparação']);

      print("------------------------------------");
      print("Humm... deu água na boca aí também?");
      print("------------------------------------");
    } else {
      print("Não foi possível acessar a base de receitas. Código: ${resposta.statusCode}");
    }
  });
}

void main() {
  print("\n----------------------------------------");
  print("Bem-vindo(a) ao programa Mão na Massa!");
  print("Vamos descobrir qual é a receita do dia.");
  print("----------------------------------------");

  buscarReceitas();
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oi, José Antônio! Como vai?

Agradeço por compartilhar.

Gostei bastante da forma como você descreveu o fluxo do código, importar, requisitar, decodificar e exibir. Você explicou bem o uso do .then(), mostrando domínio do conceito de assincronismo e boa compreensão do pacote http.

Continue explorando essa lógica e experimentando diferentes APIs.

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