1
resposta

API CoinGecko

package br.com.ProjetoAPI.Cripto;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
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 MainAPICripto {
    public static void main(String[] args) {
        Scanner lerCript = new Scanner(System.in);

        System.out.println("Informe o ID da  criptomoeda que deseja utilizar: ");
        String moeda = lerCript.nextLine();
        moeda = moeda.toLowerCase();

        String base = "https://api.coingecko.com/api/v3/simple/price";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create(base + "?ids=" + moeda + "&vs_currencies=brl" ))
                .GET()
                .build();
        try {
            HttpResponse<String> response= client.send(request, HttpResponse.BodyHandlers.ofString());
            String body = response.body();
            JsonObject json = JsonParser.parseString(body).getAsJsonObject();
            System.out.println("Código de status: " + response.statusCode());

            if (json.has(moeda)){
               JsonObject resposta = json.getAsJsonObject(moeda);
               double valor = resposta.get("brl").getAsDouble();
               System.out.println("Valor da resposta: " + valor);
            }else{
                System.out.println("Moeda nao encontrada");
            }

        }catch (IOException e){
            e.printStackTrace();


    } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

    }
}

1 resposta

Olá, Ana, como vai?

O seu código utiliza corretamente as classes HttpClient, HttpRequest e HttpResponse, demonstrando uma boa compreensão do fluxo de requisições em Java. A implementação da lógica para converter o input do usuário em letras minúsculas e o tratamento do JSON com a biblioteca Gson estão precisos, garantindo que o programa recupere o valor da criptomoeda em Reais com segurança. É interessante notar como o uso do método has do JsonObject previne erros de execução caso a API retorne um corpo vazio ou uma chave inesperada.

Parabéns pela resolução do exercício e continue compartilhando seus avanços com a comunidade.

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