Alguien sabe por que especifica en la URL de la segunda consulta hasta el atributo ID y por qué se rompe el código cuando no se hace de e...

Carlos Daniel Rodriguez

Carlos Daniel Rodriguez

Pregunta
student
hace 3 años

Alguien sabe por que especifica en la URL de la segunda consulta hasta el atributo ID y por qué se rompe el código cuando no se hace de esa forma?

Y por qué en la tercer consulta directamente utiliza la data2?

1 respuestas
para escribir tu comentario
    Carlos S. Aldazosa

    Carlos S. Aldazosa

    student
    hace 3 años

    ¡Hola, Carlos! El URL del API que usamos es el siguiente "https://rickandmortyapi.com/api/character/", puedes ir jugando con el URL en tu navegador y añadirle unos cuantos números, por ejemplo si le añadimos un 1 el URL se vería así "https://rickandmortyapi.com/api/character/1" y lo que nos devuelve es la información de Rick Sánchez 😱 que coincidencia el id de Rick es 1. Para poder obtener el id de un personaje debemos entrar al atributo

    results
    dentro de este atributo entramos al primer elemento de este (su posición [0]) y ahora en este elemento tenemos un atributo
    id
    que tiene el id, valga la redundancia. El objeto con el que estamos trabajando se vería más o menos asi:

    { info: { count: 826, pages: 42, }, results: [ { id: 1, name: 'Rick Sanchez', origin: { url: https://rickandmortyapi.com/api/location/1 } }, { id: 2, name: 'Morty Smith', origin: }, { id: 3, name: 'Summer Smith', origin: }, { id: 4, name: 'Beth Smith', origin: } ] }

    A fin de cuentas con esta linea

    API + data1.results[0].id
    obtenemos esto "https://rickandmortyapi.com/api/character/1" Como ya se pasó como argumento, el URL que te acabo de mencionar el URL con el que trabajamos ahora es ese "https://rickandmortyapi.com/api/character/1" por eso usamos
    data2
    en el siguiente URL, porque
    data2
    "guarda" este URL. Lo mismo con
    data3
    que "guarda" el URL dado por
    data2.origin.url
    . Ahora las respuestas cortas a tus preguntas:

    • porque específica en la URL de la segunda consulta hasta el atributo ID y por qué se rompe el código cuando no se hace de esa forma? Porque así "entramos" al objeto para conseguir el URL del personaje que queremos, si no entramos al objeto con todos los atributos necesarios no encontraremos lo que buscamos.
    • Y por qué en el tercer consulta directamente utiliza la data2? Porque en la función fetchData se pasó como argumento una nueva URL que será usada para el siguiente callback. Espero que te sirva de ayuda, entender la API con el que trabajaremos es obligatorio, debemos leer su documentación y podemos usar postman como recomienda el profesor para entender el API. Yo tampoco sabia el porque de todo eso, pero me puse a jugar con las URL's y puse muchos
      console.log()
      por todo el codigo para ver los valores que tomaban algunas variables como
      data2
      ,
      data3
      , etc. Saludos y nunca pares de aprender!🙋🏿‍♂️
Curso de Asincronismo con JavaScript

Curso de Asincronismo con JavaScript

Apropia los conceptos fundamentales de asincronismo con JavaScript, aplica sus diferentes estructuras y desarrolla soluciones asíncronas. ¡Amplia tus conocimientos de programación aquí!

Curso de Asincronismo con JavaScript
Curso de Asincronismo con JavaScript

Curso de Asincronismo con JavaScript

Apropia los conceptos fundamentales de asincronismo con JavaScript, aplica sus diferentes estructuras y desarrolla soluciones asíncronas. ¡Amplia tus conocimientos de programación aquí!