¿Cómo visualizar los gatos favoritos en nuestra aplicación?
Una característica esencial para cualquier amante de los gatos es poder guardar y posteriormente visualizarlos en su lista de favoritos. Vamos a implementar la lógica necesaria para que nuestra aplicación pueda solicitar a la API de Cat API los gatos que hemos marcado como favoritos. ¡Vamos allá!
¿Cómo modificamos el menú para ver nuestros favoritos?
Para comenzar, debemos modificar el menú en nuestro código para incluir la opción de ver los gatitos favoritos. Lo haremos agregando una opción más en nuestra lista de acciones disponibles:
publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int opcion;do{System.out.println("Seleccione una opción:");System.out.println("1. Ver gatos aleatorios");System.out.println("2. Ver favoritos");System.out.println("3. Salir"); opcion = scanner.nextInt();switch(opcion){case1:// Código para ver gatos aleatoriosbreak;case2:verFavoritos();break;case3:System.out.println("Hasta luego!");break;default:System.out.println("Opción no válida.");}}while(opcion !=3);}
¿Cómo solicitamos los favoritos a la API?
Para interactuar con la API, crearemos un método llamado verFavoritos en nuestra clase DatosService. Este método tomará como parámetro la API Key necesaria para autenticar nuestras solicitudes. A continuación, describimos cómo llevaremos a cabo esta tarea:
1. Creación del método verFavoritos:
publicvoidverFavoritos(String apiKey){// Lógica para solicitar los gatos favoritos}
2. Implementación de la llamada a la API:
Vamos a usar un cliente HTTP para hacer la solicitud.
Necesitaremos una clase JSON parser para interpretar la respuesta de la API.
¿Cómo configuramos las nuevas clases para manejar la información?
Como las respuestas JSON pueden ser complejas, necesitamos desglosar estos datos en clases internas que nos permitan manejar y utilizar la información con más facilidad.
Crear la clase GatosFavorito:
Esta clase nos servirá para interpretar los datos de los gatos favoritos.
publicclassGatosFavorito{privateString id;privateString apiKey;privateImagenDeGatos imagen;// clase que encapsula los detalles de la imagen// Getters y SetterspublicstaticclassImagenDeGatos{privateString id;privateString url;// Getters y Setters}}
¿Cómo seleccionamos una imagen favorita al azar?
Una vez obtenida la lista de favoritos, queremos mostrar una imagen seleccionada al azar al usuario. Aquí detallamos cómo lograrlo:
Verificamos que nuestra lista de favoritos no esté vacía.
Generamos un número aleatorio entre 0 y el tamaño de la lista menos uno.
Con estos pasos, hemos creado un acceso funcional para que los usuarios puedan ver los gatitos que han marcado como sus favoritos. Continuamos mejorando y explorando nuestra aplicación, enfocándonos en la experiencia de usuario y en crear un sistema eficiente y amigable. ¡Sigue aprendiendo y mejorando!
Estoy haciendo la Ruta de backend Java y este de lejos es el curso más desordenado y mal explicado. Lo que más rescato hasta ahora es el aprender a usar postman.
Si, estoy de acuerdo.
Tambien estoy deacuerdo, esta segunda parte del curso, parece mas un curso de Api rest y postman que de persistencia de datos.
Yo este curso lo he tomado. Como un reto de refactorización, porque este man es bien desordenado para programar :(
Jajaja creo que todos están de acuerdo con esto que dices.
Curso de resiliencia para no caer en las malas prácticas básicamente
Confieso que hace varias clases me molesta que no haya escrito la clase Gatos en singular, cuando hablamos de modelos es buena práctica por lo que recuerdo
No es la única mala práctica en que se está cayendo, créeme. Ya he enviado retroalimentación al Team mediante el formulario "Reportar un problema"; esperemos que la próxima iteración esté mejor.
Estudiantes, actualicé el proyecto en mi repositorio aplicando mejores prácticas
¿porqué no mejor acutaliza los videos del curso?. Los estudiantes se lo llevan pidiendo desde hace mas de 3 años. La temática del curso da perfectamente para aplicar desde buenas prácticas de sintáxis hasta aplicación de patrones de diseño.
Por favor, suban nuevamente el curso @Platzi.
Para qué ponen los getter y setter si no se ponen los atributos privados ?
por defecto si no especificas que es public la variable sera privada. es decir, int num es igual que escribir private int num
de hecho es default no private @Arturo
Entiendo la frustración de ustedes compañeros, yo también me siento así, pero los invito a que también entiendan al profesor, lo mas probable es que esta sea una de sus primeras veces enseñando, no hay que sentirse enojados con él, mejor intentemos contribuir a su crecimiento como docente, aportando de manera respetuosa consejos de como mejorar, espero no incomodar a nadie, feliz noche para todos
Siempre resulta fácil señalar las deficiencias, naturalmente, para alguien que entiende buenas prácticas y todo lo relacionado con patrones de diseño y arquitectura de software lo pueden ver a simple vista. La invitación es a no darle tan duro al profe y contribuir desde nuestros comentarios de forma positiva hacia las personas que estamos aprendiendo y sumándonos a este proceso. No seamos tan indiferentes
Esta seccion no me parece la mas adecuadas para lo que se dice de persistencia de datos en java.
Que pasa con platzi que no ha actualizado cursos de java solo se ve cursos viejos y algunos otros como este que se perdio el sentido del curso.
Hasta ahora me parece bien el curso, enseña como conectar con BD, hacer las operaciones básicas y como consumir APIS. Me gustaría un curso donde enseñen a como crear nuestras propias Apis y publicarlas con Java
A alguien mas postman le genera 2 opciones de código para java?
ami me genera el siguiente código aparte del que usa el profesor:
Es otra librería para hacer peticiones a apis, creo
Definitivamente, hay gente que más que un curso ordenado lo que les urge es tomar un curso de habilidades bandas, recuerden que poco sirve ser un pro técnicamente y un fracaso como persona. Por encima de todo, respeto por los demás que si bien el curso requiere que le den una reforma hay formas adecuadas de expresarlo.
Para generar un número aletatorio pueden usar esta función, es mucho más limpio.
Interesante, aunque si el usuario desea ver los gatos favoritos no entiendo porque lo hacemos aleatorio cuando podemos iterar mostrando cuales son sus gatos favoritos avisándole cuando se terminaron de mostrar.
La fórmula de aleatorio que el profesor aplica es una fórmula bien conocida en internet para generar números aleatorios en Java (o en general en varios lenguajes) entre un número mínimo y un número máximo. Esto debido a que el método random() sólo genera números entre [0,1).
Se está transformando los datos a Json cierto y almacenándolos en un array?
Me gustaría saber para que se envía
ModeloGatosFavoritos[].class
en el metodo fromJson();
Agradezco cualquier aclaración
Hola Hugo, esto es por que como se indica en la documentación del método fromJson: este método requiere dos parámetros, el primero es tipo de objeto deseado y el segundo (el que tu preguntas) es la clase del tipo de dato al que se mapeara el Json
Muy bien, mediante este método podremos mostrar los gatos favoritos. Interesante todas las clases adiciones que son necesarias a realizar cuando los datos se encuentran dentro de arreglos.
Excelente forma de obtener los datos del API y parsearlos a un arreglo, ya decía yo que me hacia falta, en el vídeo anterior como obtener datos pero en un arreglo