1
resposta

Hora da prática: desafios concluídos.

1- API do Google Books:

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 GoogleBooks {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Insira o título do livro que procura: ");
        String titulo = scanner.nextLine().replace(" ", "+");;

        String apikey = "AIzaSyC0kB593dgj_LOtk3O9hxktpz2LbLqIeiI";
        String link = "https://www.googleapis.com/books/v1/volumes?q=" + titulo + "&key=" + apikey;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(link))
                .build();

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

        scanner.close();
    }
}

2- API CoinGecko:

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 CoinGecko {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Digite o nome da criptomoeda (ex: bitcoin, ethereum): ");
        String moeda = scanner.nextLine();

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

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(link))
                .build();

        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}

3- API do TheMealDB:

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 TheMealDB {
    public static void main(String[] args) throws IOException, InterruptedException {
        Scanner scanner = new Scanner(System.in);

        System.out.println("Digite o nome da receita: ");
        String receita = scanner.nextLine().replace(" ", "+");;;

        String link = "https://www.themealdb.com/api/json/v1/1/search.php?s=" + receita;

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(link))
                .build();

        HttpResponse<String> response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
1 resposta

Oi, Leo! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você organizou muito bem as chamadas HTTP para diferentes APIs, e é ótimo ver como aplicou o que aprendeu no curso em três exemplos distintos. Cada classe está clara, direta e cumpre bem sua função. O uso do Scanner e da construção dinâmica da URL mostra domínio sobre o básico de entrada e concatenação em Java.

Uma dica interessante para o futuro é tratar melhor o conteúdo da resposta da API para torná-lo mais legível, usando bibliotecas como org.json.Veja este exemplo:


import org.json.JSONObject;

String json = response.body();
JSONObject obj = new JSONObject(json);
System.out.println(obj.toString(2));

Esse código usa a biblioteca org.json para formatar o JSON com identação, facilitando a leitura no terminal.

Alura

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