package desafio.apis;
public final class ApiKeyGerador {
private static final String API_KEY_GOOGLE_BOOKS = "SUA_CHAVE_API";
private static final String API_KEY_COINGECKO = "SUA_CHAVE_API";
private ApiKeyGerador() {}
public static String getApiKey(String nomeProvador, String busca){
switch (nomeProvador){
case "GoogleBooks":
return "https://www.googleapis.com/books/v1/volumes?q="
+ busca.replace(" ", "+")
+ "&key="
+ API_KEY_GOOGLE_BOOKS;
case "CoinGecko":
return "https://api.coingecko.com/api/v3/simple/price?vs_currencies=usd&ids="
+ busca.replace(" ", "+")
+ "&x-cg-demo-api-key="
+ API_KEY_COINGECKO;
case "TheMealDB":
return "https://www.themealdb.com/api/json/v1/1/search.php?s="
+ busca.replace(" ", "+");
default:
System.out.println("Provedor invalido");
return null;
}
}
}
package desafio.apis;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public final class Consumidor {
private Consumidor() {};
public static String ConsumirApi(String endereco) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(endereco))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
return response.body();
}
}
package desafio.apis;
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 Principal {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner sc = new Scanner(System.in);
String menu = """
Informe abaixo em qual API deseja buscar:
1- Consulta à API do Google Books
2- Consulta à API CoinGecko
3- Consulta à API do TheMealDB
0- Sair
""";
int opcaoSelecionada = 1;
while (opcaoSelecionada != 0) {
System.out.println(menu);
opcaoSelecionada = Integer.parseInt(sc.nextLine());
switch (opcaoSelecionada) {
case 0:
System.out.println("Saindo...");
break;
case 1:
System.out.println("insira o título de um livro:");
String titulo = sc.nextLine();
String googleBooksEndereco = ApiKeyGerador.getApiKey("GoogleBooks", titulo);
if (googleBooksEndereco != null) {
String response = String.valueOf(Consumidor.ConsumirApi(googleBooksEndereco));
System.out.println(response);
break;
}
case 2:
System.out.println("Insira nome da criptomoeda para a cotação (por exemplo, bitcoin, litecoin): ");
String crypto = sc.nextLine();
String coinGeckoEndereco = ApiKeyGerador.getApiKey("CoinGecko", crypto);
if (coinGeckoEndereco != null) {
String response = String.valueOf(Consumidor.ConsumirApi(coinGeckoEndereco));
System.out.println(response);
break;
}
case 3:
System.out.println("Insira o nome de uma receita");
String receita = sc.nextLine();
String theMealDBEndereco = ApiKeyGerador.getApiKey("TheMealDB", receita);
if (theMealDBEndereco != null) {
String response = String.valueOf(Consumidor.ConsumirApi(theMealDBEndereco));
System.out.println(response);
break;
}
default:
System.out.println("Opção Invalida");
break;
}
}
sc.close();
}
}