No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14 Días
8 Hrs
47 Min
53 Seg

Guardando datos en APIs públicas

20/25
Recursos

Aportes 22

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Error alert!!!
//Codigo del profesor a reemplazar :
//DE ::
image = ImageIO.read(url);
ImageIcon fondoGato = new ImageIcon(image);
//A ::
HttpURLConnection httpcon = (HttpURLConnection) url.openConnection();
httpcon.addRequestProperty(“User-Agent”, “”);
BufferedImage bufferedImage = ImageIO.read(httpcon.getInputStream());
ImageIcon fondoGato = new ImageIcon(bufferedImage);

El profe ocultando el apiKey, pero en los videos anteriores se ve claramente XD

The Create (MediaType, String) method of the RequestBody type is deprecated.
El metodo Tcreate(MediaType, String) del tipo RequestBody está en obsoleto o en desuso.

Se pueden reemplazar las siguientes lineas:

MediaType mediaType = MediaType.parse("application/json");
 RequestBody body = RequestBody.create(mediaType, "{\n\t\"image_id\":\""+gato.getId()+"\"\n}");

por está linea y eliminar la falla de seguridad

RequestBody body = RequestBody.create("{\n\t\"image_id\": \""+gato.getId()+"\"\n}",null);

Eliminarias la alerta Warnings y el aviso de deprecated. (Y)

Un consejo que tal vez llegue un poco tarde. Pueden evitar el tener que cortar los corchetes del JSON si en vez de convertir a la clase Gatos, convierten la respuesta de la API a un arreglo de esta misma clase de la siguiente forma:

//Cortando los corchetes (esto lo comentamos o lo borramos por que ya no se ocupara)
//elJson = elJson.substring(1, elJson.length());
//elJson = elJson.substring(0, elJson.length()-1);

//Antes esto estaba asi
// Gatos gatos = gson.fromJson(elJson, Gatos[].class);

/*
 Lo unico que hice fue agregar los corchetes a la parte que decia Gatos.class
 de esta forma haces que la libreria Gson espere un array de esa clase y no solo un objeto
 finalmente habras notado que puse [0] al final de esta linea, eso es para tomar el 1er elemento del array
*/

Gatos gatos = gson.fromJson(elJson, Gatos[].class)[0];

Listo! Genial 😃

![](

2022 y funcionando perfecto , ahora por la pagina muestra ya todo el proceso de postman paso por paso .

Este es el mismo video de “Mostrar favoritos”, que se encuentra dos videos más adelante

Estudiantes, actualicé el proyecto en mi repositorio aplicando mejores prácticas

Si alguien lo esta haciendo con thedogapi tenga en cuenta que debe solicitar un apikey para esta api, no sirve la misma del catapi. A mi me generó ese problema.
Solo debes buscar thedogapi en el navegador y eliges la opcion que dice Signup for an API key. Allí te la envían al correo.

chales despues del minuto 6:52 ya no entendi que hace

Hubiera sido bueno que explicaras como lidiar con los errores, para que la app no se cierre siempre que hay un error.

![](https://static.platzi.com/media/user_upload/image-b38e675d-e9ce-4695-a957-3b2859eb13ae.jpg) Así me quedó el código en el método: Favoritos: ```js public static void favoritoGato(GatosModel gatosModel){ try { OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\r\n \"image_id\": \""+ gatosModel.getId()+"\"\r\n}"); Request request = new Request.Builder() .url("https://api.thecatapi.com/v1/favourites") .method("POST", body) .addHeader("Content-Type", "application/json") .addHeader("x-api-key", gatosModel.getAPI_KEY()) .build(); Response response = client.newCall(request).execute(); } catch (IOException e) { System.out.println("Error: "+e); } } ``` public static void favoritoGato(GatosModel gatosModel){ try { OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\r\n \\"image\_id\\": \\""+ gatosModel.getId()+"\\"\r\n}"); Request request = new Request.Builder() .url("https://api.thecatapi.com/v1/favourites") .method("POST", body) .addHeader("Content-Type", "application/json") .addHeader("x-api-key", gatosModel.getAPI\_KEY()) .build(); Response response = client.newCall(request).execute(); } catch (IOException e) { System.out.println("Error: "+e); } }
![](https://static.platzi.com/media/user_upload/image-e6d98165-2517-40d6-81e4-bda2e72b5077.jpg) Feliz, porque hasta ahora, todo corre, todo compila, sin errores, y la verdad, cuando había un bug, toca investigar, lo bueno es que la comunidad de java apoya mucho mediante foros en línea, entre diferentes aportes y usos de librerías, justo estaba realizando pruebas con Gson y con ObjectMapper, son similares
Pesima explicacion isque tapanado esa clave perdimos mas explicacion
Quien sabe si santiago leera estos comentarios lo mas probable es que no pero de serlo asi , solo tomarse los comentarios a forma reflexiva y en futuros cursos mejorar la manera de enseñar.

Creo que ya no funciona la API para marcar favorito, cuando envio la peticion en Postman me sale error 404:

{
    "message": "404 - please consult the documentation for correct url to call. https://docs.thecatapi.com/"
}

En postman puedes tener variables de entorno para no estar copiando y pegando todo el tiempo el ApiKey o Tokens …

Genial

Entonces cada vez que utilicemos una API debemos estar al tanto de sus funcionalidades por medio de la lectura de su documentación, así podremos aprovecharla al máximo. Muchas gracias por la clase instructor Santiago.

Excelente explicación, muy buena

Excelente aprendiendo a usar API’s por primera vez, ya veo que funcionan al igual que practica mente todo en el software como una función que decides que usar y que no. Con tener la documentación en mano puede implementar lo que necesites.

a que se refiere con decir que esta quemada la APIKEY ??? la apikey ya sirve???