Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda