Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

152
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!