1
resposta

Desafio: hora da prática API

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;

public class PrincipalComBusca {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite o nome do livro: ");
        String busca = leitura.nextLine();

        // URL da API oficial do Google Books (retorna dados em JSON)
        String endereco = "https://www.googleapis.com/books/v1/volumes?q=" + busca.replace(" ", "+");

        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());
    }
}


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;

public class CotacaoCriptomoeda {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o ID da criptomoeda (ex: bitcoin, ethereum): ");
        String cripto = scanner.nextLine();

        String url = "https://api.coingecko.com/api/v3/simple/price?ids=" + cripto + "&vs_currencies=brl";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println("Cotação atual em BRL: " + response.body());
    }
}


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;

public class ConsultaReceita {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o nome da receita (ex: Arrabiata, Chicken, Beef): ");
        String nomeReceita = scanner.nextLine();

        String url = "https://www.themealdb.com/api/json/v1/1/search.php?s=" + nomeReceita.replace(" ", "%20");

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println("Informações da receita: " + response.body());
    }
}
1 resposta

Oi, Gabrielly! Como vai?

Gostei muito de como você organizou os exemplos com diferentes APIs — livros, criptomoedas e receitas. Isso mostra que você entendeu bem como adaptar uma mesma estrutura para diferentes fontes de dados.

Uma dica interessante para o futuro é usar o método URLEncoder.encode() para garantir que a string de busca seja convertida corretamente para URL. Veja este exemplo:


import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;

String busca = "Senhor dos Anéis";
String buscaCodificada = URLEncoder.encode(busca, StandardCharsets.UTF_8);

Esse código transforma espaços e acentos em caracteres válidos para URLs. Assim, você evita problemas com buscas que contêm caracteres especiais.

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