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

281
Views
¿Cómo consumir un punto final de API que requiere datos de otro punto final de API (dog.ceo)?

cómo consumir de una api con otra api.

 var url_1 = 'https://dog.ceo/api/breeds/list/all'; fetch(url_1) .then( response => response.json()) .then(data => { const breeds = data.message; var arr = []; for (var b in breeds) { arr.push({ breed : b, subBreeds : [ breeds[b][0] ], images : [{ url: '' }] }) }

También tengo esta otra api, de donde extraigo las imágenes de cada raza de perro, pero aquí necesitas la variable que sería el nombre de la raza del perro.

 var url_2 = 'https://dog.ceo/api/breed/{breed_name}/images'; fetch(url_2) .then( response => response.json()) .then(data => { const images = data.message; var arr_images = []; for (var i in images) { arr_images.push({ images : [{ url: images[i] }] }) }

Entonces, lo que no sé, ¿cómo puedo unirme para enviar el nombre de la raza del perro a la segunda api para consumirlo?

¿Y cómo puedo unir el arreglo de las imágenes con el arreglo de arriba?

debería ser algo como esto

 { "breed": "Hound", "subBreeds": [ "subBreedA", "subBreedB", "subBreedC" ], "images":[ {"url":"http://some.url.com"}, {"url":"http://some.other.url"} ] }

Espero haber sido claro, gracias por tu ayuda, te estaré muy agradecido.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Lo dividiría en funciones separadas para que pueda concentrarse en una parte a la vez. Luego, combínelos para obtener todos los datos que desee. De esta forma, también puedes reutilizar cada función en caso de que quieras usar los datos de una manera diferente:

Parque infantil TS

 // dog.ceo API async function fetchDogApiResult (apiPath) { const response = await fetch(`https://dog.ceo/api/${apiPath}`); if (!response.ok) throw new Error(`Response not OK (${response.status})`); const data = await response.json(); if (data.status !== 'success') throw new Error('Response not successful'); return data.message; } async function fetchBreeds () { return fetchDogApiResult('breeds/list/all'); } async function fetchSubBreeds (breed) { return fetchDogApiResult(`breed/${breed}/list`); } async function fetchImages (breed, subBreed) { return fetchDogApiResult(`breed/${breed}${subBreed ? `/${subBreed}` : ''}/images`); } async function fetchDogData () { const breeds = await fetchBreeds(); return Promise.all(Object.entries(breeds).map(async ([breed, subBreeds]) => ({ breed, subBreeds, images: (await fetchImages(breed)).map(url => ({url})), }))); } (async () => { const dogData = await fetchDogData(); console.log(JSON.stringify(dogData)); })();

about 4 years ago · Juan Pablo Isaza Report

0

Puede usar async/await para llamar a la segunda API en la segunda then en la primera API, después de obtener datos de la segunda API, puede usar for loop para ellos. como esto

 var url_1 = 'https://dog.ceo/api/breeds/list/all'; fetch(url_1) .then( response => response.json()) .then(async data => { const breeds = data.message; const resUrl2 = await fetch(url_2) const dataUrl2 = await resUrl2.json() var arr = []; for (var b in breeds) { arr.push({ breed : b, subBreeds : [ breeds[b][0] ], images : [{ url: '' }] }) } const images = dataUrl2.message; var arr_images = []; for (var i in images) { arr_images.push({ images : [{ url: images[i] }] }) } })
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!