Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Sugestão] Consumindo a API The Cat

Utilizando o exemplo da aula, só que em vez de utilizar a OMDb resolvi utilizar a APITheCat https://thecatapi.com/

Só que a da aula tem a vantagem em que você pode buscar os filmes pelo nome literal, nessa api fiz como teste, buscar pela raça de um gato.

As ids estão como "pers, bamb, beng" que referencia gatos persas, bambinos, gato-de-bengala(descobri quando eu não faço a busca por id no Postman).

**Tem como melhorar essa consulta? Ou é uma caracteristica do banco de dados da API?

Mas tá funcionando conforme a proposta do exercício, eu busco por essas ids e consigo baixar imagens do gatinhos, seja persas, siameses e etc. Curti o exercício e a aula foi bem interessante.

Exemplo1 - Exemplo Gato-de-BengalaExemplo 2 - Gato Persa

2 respostas
solução!

Olá Jean! Tudo bem?

Que legal que você está explorando a API do The Cat! A consulta por IDs de raças é uma característica comum em muitas APIs, pois facilita a busca e a organização dos dados. No entanto, podemos melhorar a usabilidade do seu código para permitir buscas mais intuitivas, como por nome da raça, em vez de IDs.

Aqui está uma sugestão de como você pode melhorar a consulta, criando um mapeamento entre os nomes das raças e seus respectivos IDs. Assim, você pode buscar pela raça usando o nome e o código traduzirá isso para o ID correspondente.

Primeiro, crie um Map para armazenar os nomes das raças e seus IDs:

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

public class Main {
    public static void main(String[] args) throws IOException, InterruptedException {
        Map<String, String> breedMap = new HashMap<>();
        breedMap.put("persian", "pers");
        breedMap.put("bengal", "beng");
        breedMap.put("siamese", "siam");
        // Adicione mais raças conforme necessário

        Scanner sc = new Scanner(System.in);
        System.out.println("Digite o nome da raça do gatinho para buscar: ");
        String busca = sc.nextLine().toLowerCase();

        String breedId = breedMap.get(busca);
        if (breedId == null) {
            System.out.println("Raça não encontrada!");
            return;
        }

        String breedCat = "https://api.thecatapi.com/v1/images/search?limit=5&breed_ids=" + breedId + "&api_key=YOUR_API_KEY";

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

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

        System.out.println(response.body());
    }
}

Neste exemplo, você pode digitar o nome da raça, e o programa buscará o ID correspondente no Map. Se o nome da raça não for encontrado, ele exibirá uma mensagem de erro.

Não se esqueça de substituir YOUR_API_KEY pela sua chave de API do The Cat.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Adorei a sugestão!!!! Tá sendo uma etapa que estou curtindo bastante na formação e ver as aplicações da teoria de vários assuntos que abordam APIs, estrutura de dados, engenharia de software e etc. Obrigado Armano!!