Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
¿Cómo extraería esta información de esta API?

Soy algo nuevo con express, actualmente estoy trabajando con thedogapi, estoy haciendo el backend y necesito hacer un GET a una parte exacta de la api (los temperamentos) que me está trayendo muchos problemas, un ejemplo de la API es:

 }, "id": 1, "name": "Affenpinscher", "bred_for": "Small rodent hunting, lapdog", "breed_group": "Toy", "life_span": "10 - 12 years", "temperament": "Stubborn, Curious, Playful, Adventurous, Active, Fun-loving", "origin": "Germany, France", "reference_image_id": "BJa4kxc4X", "image": { "id": "BJa4kxc4X", "width": 1600, "height": 1199, "url": "https://cdn2.thedogapi.com/images/BJa4kxc4X.jpg" }

Como pueden ver, mi problema es que solo es una cadena con palabras dentro, la cosa aquí sería extraer solo los temperamentos para poder guardarlos en mi base de datos una vez extraídos, pero la pregunta es, ¿cómo podría hacer eso? He estado intentando algunas cosas, pero parece que no funciona... Un código que estaba intentando era

 const getTemp = await Temperament.findAll() if (getTemp.length === 0){ const apiAxios = await axios.get(`https://api.thedogapi.com/v1/breeds?api_key=${API_KEY}`) const infoToGet = await apiAxios.data?.map(el => { console.log(el.temperament?.split(",").map(el => el.trim()).toString()) return { temperament: [el.temperament]?.join().split(",").map(el => el.trim()).toString() } }) const dbSave = await Temperament.bulkCreate(infoToGet) }

Descarté por completo ese código ya que no se logró lo que quería, pero la parte de los temperamentos funcionaba de acuerdo con el registro de la consola, pero aún no funcionaba, así que recibí una especie de referencia de ayuda, pero esto no lo lograría ya que está usando métodos de matriz... Te mostraré (el siguiente código debería funcionar si fuera una matriz...)

 router.get("/temperaments", async (req, res) => { const temperamentsApi = await axios.get(`https://api.thedogapi.com/v1/breeds?api_key=${API_KEY}`) const temperaments = temperamentsApi.data.map( el => el.temperament) const tempEach = temperaments.map(el => { for (let i = 0; i < el.length; i++) return el[i]}) console.log(tempEach) tempEach.forEach(el => { Temperament.findOrCreate({ where: { temperament: el } }) }) const allTemperaments = await Temperament.findAll() res.send(allTemperaments) })

¿Cómo harías que esto último funcione solo en la parte del TEMPERAMENTO? lo siento si fue un poco largo, soy nuevo en todo esto y realmente estoy atrapado aquí: s

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Según la referencia de la API:

https://docs.thedogapi.com/api-reference/breeds/breeds-list

Le doy un ejemplo para su referencia, me refiero a su código, la variable temperamentsApi almacena el resultado de la API, por lo que el código de extracción debería ser el siguiente.

 let result=[]; temperamentsApi.data.forEach(datum=>{ result.push(datum.temperament); }); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda