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

[Minha Solução] Desafio consulta à API do TheMealDB

Desafio3. Crie um programa Java que faça uma consulta à API do TheMealDB utilizando as classes HttpClient, HttpRequest e HttpResponse. Solicite ao usuário que insira o nome de uma receita e exiba as informações disponíveis sobre essa receita.


import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

import static java.lang.System.exit;

public class ConsultaReceita {
    private String nomeReceita;

    Scanner sc = new Scanner(System.in);

    public ConsultaReceita(String nomeReceita) {
        this.nomeReceita = nomeReceita;
    }

    @Override
    public String toString() {
        return super.toString();
    }

    public void buscarReceita() throws IOException, InterruptedException {
        int opcao = 0;
        System.out.println("===== WELCOME TO - ULTIMATE RECIPE SEARCH ");
        do {
            System.out.println( """
                    Selecione a opção:
                    1 - Buscar Receita
                    2 - Sair do Programa
                    """);
            int selecao = sc.nextInt();
            switch (selecao) {
                case 1:
                    System.out.println("Insira o nome da receita a ser pesquisada: ");
                    this.setNomeReceita(sc.next());
                    String endereco = "https://www.themealdb.com/api/json/v1/1/search.php?s=" +
                            this.getNomeReceita();
                    HttpClient client = HttpClient.newHttpClient();
                    HttpRequest request = HttpRequest.newBuilder()
                            .uri(URI.create(endereco))
                            .build();
                    HttpResponse<String> response = client
                            .send(request, HttpResponse.BodyHandlers.ofString());
                    System.out.println(response.body());
                    break;
                case 2:
                    System.out.println("Saindo do programa...");
                    exit(0);
                    break;
            }
        } while (opcao == 0);
    }

    public String getNomeReceita() {
        return nomeReceita;
    }

    public void setNomeReceita(String nomeReceita) {
        this.nomeReceita = nomeReceita;
    }
}

import java.io.IOException;

public class Principal {
    public static void main(String[] args) throws IOException, InterruptedException {
        ConsultaReceita consultaReceita = new ConsultaReceita("");
        consultaReceita.buscarReceita();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade


Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Carlos. Tudo bem?

Obrigado por compartilhar seu código aqui com a gente. É ótimo ver você aplicando as classes HttpClient, HttpRequest e HttpResponse para consumir a API do TheMealDB. O uso de um loop para permitir que o usuário faça várias buscas é uma excelente ideia e torna o programa mais interativo. Uma sugestão é que você poderia melhorar a legibilidade da saída formatando a resposta da API, tornando as informações mais fáceis de entender.

Parabéns pelo trabalho. Continue assim, com essa dedicação. Conte com o apoio do Fórum.

Abraços e bons estudos!