No tienes acceso a esta clase

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

Creaci贸n del proyecto y API KEY

17/25
Recursos

Aportes 29

Preguntas 6

Ordenar por:

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

o inicia sesi贸n.

Una anotaci贸n adicional sobre buenas pr谩cticas: las claves, contrase帽as, keys, etc., no deben quemarse en el c贸digo sino que se recomienda manejar un archivo aparte que las coleccione. Ese archivo simplemente se lee de manera local y no se almacena en el repositorio (para no exponer informaci贸n sensible, a menos que el repositorio sea privado o permita ocultar archivos; en ese 煤ltimo caso se puede incluir)

Personalmente no me gusto la forma en la que el profesor estructur贸 la acplicacion, por eso les propongo el siguiente modelo:

Para seguir la idea de que la app tiene que:
a. estar separada en capas
b. cada parte de nuestra app tiene que tener un orden logico
c. las clases tienen que estar organzidas

Les prongo este modelo:

| GUI +---+
+-----+   |    +----+   +---------+   +-----+
          +--->| UI +-->| Service +-->| DAO |
+-----+   |    +----+   +---------+   +-----+
| CLI +---+
+-----+

GUI: (graphical) What you interact with
CLI: (non-graphical) What you interact with

UI: What decides what to do based on the output (what you unconsciously interact with)
Service: What processes the data
DAO: What communicates with the API/DB

Finalmenente, para este proyecto podriamos usar una estructura como esta:

.
鈹溾攢鈹 App.java
鈹溾攢鈹 cats
鈹偮犅 鈹溾攢鈹 CatDAO.java
鈹偮犅 鈹溾攢鈹 Cat.java
鈹偮犅 鈹斺攢鈹 CatService.java
鈹斺攢鈹 ui
    鈹溾攢鈹 cli
    鈹偮犅 鈹斺攢鈹 CLI.java
    鈹溾攢鈹 gui
    鈹偮犅 鈹斺攢鈹 GUI.java
    鈹斺攢鈹 UI.java

5 directories, 7 files

No entiendo la necesidad de crear tanto codigo y compejidad solamente en la validac贸n innecesaria de los datos, si con el showOptionDialog puedes ofrecer 2 opciones mediante el boton y condicionarla en el switch sin tener tantas cosas con un ciclo for y un while.

Mi versi贸n, un poco mas corta:

int optionSelected = -1;
        ArrayList<String> options = new ArrayList<>();
        options.add(" 1. ver gatitos");
        options.add(" 2. salir");
        do{
            Object input = 
JOptionPane.showInputDialog(
null, "Gatitos java", "Menu principla", JOptionPane.INFORMATION_MESSAGE, null, options.toArray(),options.get(0)
);
            optionSelected = options.indexOf(input);
            if(optionSelected == 0){
                GatosService.verGatos();
            }
        }while (optionSelected != 1);
Habr铆a sido una buena opci贸n que ense帽ara c贸mo crear una variable de entorno para almacenar el API Key y llamarla desde nuestro programa Java para poder esconder el API Key y as铆 poder esconderlo de manera satisfactoria tanto en el v铆deo (evitar la censura) como en un repositorio p煤blico de GitHub o GitLab

Deberian actualizar los cursos!

驴porque no encapsulo los atributos? 馃槙

Super 馃槂

<dependencies>
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.2.2</version>
    </dependency>
</dependencies>

Actualizacion de esto urgente por favor.

Interesante clase, me gusto la parte de crear un men煤 que se muestre por medio de una ventana emergente al usar el JOptionPane y tambi茅n al establecer la llave de formar directa por medio de la variable String.

Para los que est谩n usando IntelliJ, que configuraci贸n de compilado usan?

Con ayuda de los comentarios y otras fuentes, pude resumir esta clase lo m谩s que pude, comprendo que el profesor no tenga tiempo para actualizar pero para eso somos una gran comunidad. Les dejo mi c贸digo

<String[] opcion= {"Ver Gatitos", "Salir"};
        int selectedOption = JOptionPane.showOptionDialog(null, "Selecciona una opci贸n", "Gatitos APP", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, opcion, opcion[0]);
        
        if(selectedOption==0){
            System.out.println("Elegiste la opcion de gatitos");
        
        }else if(selectedOption== 1) {
            System.out.println("Elegiste salir");
        }> 

el ciclo for con el if lo resum铆 con esta linea:

/*for(int i=0; i < botones.length; i++){
                if(opcion.equals(botones[i])){
                    opcion_menu = i;
                }
}*/
opcion_menu = Arrays.asList(botones).indexOf(opcion);

Atajo de teclado Netbeans

Escribir: psvm y pulsar la tecla TAB


generara de forma autom茅tica el c贸digo para el m茅todo main


Espero pueda ser de utilidad

El JOptionPane.showInputDialog() permite solicitar datos al usuario y personalizar nuestra ventana

Quiz谩s esta l贸gica ayude un poco m谩s a quienes ven por primera vez este v铆deo. Salu2.

Para los interesados en utilizar el api de cachorros les dejo el enlace: https://docs.thedogapi.com/

Descarguen espec铆ficamente las dependencias explicadas en esta clase para evitar problemas con las 煤ltimas actualizaciones

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

Alguien sabe como agregar la dependenci de OKHTTP en intelliJ IDEA??? ya busque bastante pero no logro encontrar respuesta鈥

Bien conociendo ya un poco la posibilidad de herramientas visuales que nos brinda java.

Buena explicaci贸n excelente

este curso esta super genial!

Por si la api de gatos que est谩 presentando problemas, a煤n los sigue teniendo, pueden probar con la api https://dog.ceo/dog-api/.
El usuario @CansecoWill tambi茅n lo public贸 en este comentario.
https://platzi.com/comentario/1116230/

Algo importante a tener en cuenta de cara al formateo del c贸digo y a tenerlo organizado, es que casi todos los IDE actuales ofrecen opciones de formato autom谩tico, o lo que se llama linter. Esto permite tener el c贸digo organizado sin perder tanto tiempo intentando hacerlo manualmente.

Genial.

Que debe tener una llave primaria para que no se env铆e la inserci贸n de datos?

El c贸digo se puede reducir, pero para tener una base est谩 excelente.