No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

1D
5H
16M
45S

Mostrar favoritos

22/25
Recursos

Aportes 16

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Creo que es redundante tener el c贸digo que descarga las im谩genes, mas de una vez, lo mejor ser铆a meterlo en un m茅todo y que devuelva una imagen.

Estoy en 2022 haciendo el curso y todo los video estan desactualizados, y desordenados porque salte de BD a Programaci贸n y de ahi a otra herramientes y de nuevo a BD , seria bueno dar un orden y actualizar los cursos ya que en 2 a帽os que tiene los videos mas actuales hay muchos cambios y creo que hay gente en youtube que tiene actualizaciones y ordenado el curso.
Si me dicen recomendar铆as la plataforma digo no

Interesante ya veo porque fue necesario quitar las llaves en el proceso anterior, pero yo no hubiera copiado y pegado el c贸digo de ver gatos fuera implementado eso en una funci贸n a parte para que ambos procesos consuman esa funci贸n y el c贸digo sea mas f谩cil de mantener.

Obs:
Los atributos de Json tienen que ser el mismo en la clase que se crea.

Asuuu que desorden, jeje, refactoricen urgente xd

Todav铆a no se ha cambiando el v铆deo, sigue estando repetido.

Don鈥檛 repeat yourself 馃槙

Se aprende tambi茅n del desorden. Considero innecesario mostrar los favoritos de forma aleatoria. De resto bien

Todo genial y funciona perfectamente. El unico problema es el codigo xD, como muchos dicen ese copia y pega no va y es una filosofia en la programacion, aqui porque es didactivo y corto, pero en un proyecto seria horrible.

驴Tra vez el error grave de un llamado recursivo? C reo que hay que ponerle atenci贸n a este curso, es m谩s volverlo a hacer.

Este video ya esta como 鈥淕uardando datos en APIs publicas鈥

Excelente, ahora mediante estos ajustes podremos ver las im谩genes de gatos favorito que hayamos seleccionado. Muchas gracias instructor Santiago.

Yo lo hice algo diferente para que muestre los favoritos en orden:

    public static void seeFavoriteCats() {
        try {
            OkHttpClient client = new OkHttpClient().newBuilder()
                    .build();
            MediaType mediaType = MediaType.parse("text/plain");
            RequestBody body = RequestBody.create(mediaType, "");
            Request request2 = new Request.Builder()
                    .url("https://api.thecatapi.com/v1/favourites")
                    .get()
                    .addHeader("x-api-key", APIKey.getApikey())
                    .build();
            Response response2 = client.newCall(request2).execute();
            String theJson2 = response2.body().string();

            Gson gson2 = new Gson();
            FavoriteCat[] favoriteCatsArray = gson2.fromJson(theJson2, FavoriteCat[].class);

            if (favoriteCatsArray.length > 0) {
                for (FavoriteCat currentCat : favoriteCatsArray) {
                    try {
                        URL url = new URL(currentCat.image.getUrl());
                        HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
                        httpcon.addRequestProperty("User-Agent", "");
                        BufferedImage bufferedImage = ImageIO.read(httpcon.getInputStream());
                        ImageIcon background = new ImageIcon(bufferedImage);

                        if (background.getIconWidth() > 800) {
                            Image modified = background.getImage().getScaledInstance(800, 600, Image.SCALE_SMOOTH);
                            background = new ImageIcon(modified);
                        }

                        String menu = "Options: \n" +
                                "1. Delete as favorite\n" +
                                "2. See next cat\n" +
                                "3. Go back";

                        String[] buttons = {"Delete as favorite", "See next cat", "Go back"};
                        String catID = String.valueOf(currentCat.image.getId());
                        String option = (String) JOptionPane.showInputDialog(null, menu, catID, JOptionPane.INFORMATION_MESSAGE, background, buttons, buttons[0]);

                        int selection = -1;

                        for (int i = 0; i < buttons.length; i++) {
                            if (option.equals(buttons[i])) {
                                selection = i;
                            }
                        }

                        switch (selection) {
                            case 0:
                                deleteCatAsFavorite();
                                break;
                            case 1: break;
                            default: System.exit(0);
                        }


                    } catch (IOException e) {
                        System.out.println(e);
                    }
                }

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

    }

El problema de llamar el m茅todo recursivamente es que va a volver a llamar todos los datos a trav茅s de la api y a hacer muchas cosas de manera innecesaria.

Estudiantes, actualic茅 el proyecto en mi repositorio aplicando mejores pr谩cticas

Listo!

Prefer铆 solo listar los gatitos agregados a favoritos.

La idea seria despu茅s hacer refactor para aplicar POO y DRY