Traté de obtener imágenes actuales de la foto astronómica del día (APOD) de la NASA. Pero ahora estoy tratando de obtener imágenes al azar sin usar fechas. ¿Es posible? Si es así, ¿entonces cómo?
aquí está el código
const fetchAPOD = async () => { try { const response = await fetch("https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY") const data = await response.json() displayData(data) } catch (error) { console.log(error) } } const displayData = data => { document.querySelector('.title').textContent = data.title document.querySelector('.date').textContent = data.date document.querySelector('.picture').src = data.url document.querySelector('.explanation').textContent = data.explanation } fetchAPOD()que funciona bien
todo lo que quiero es agregar una función para obtener imágenes de la API al azar
count Un número entero positivo, no mayor que 100. Si se especifica esto, las imágenes elegidas al azar se devolverán en una matriz JSON. No se puede usar junto con date o start_date y end_date.
https://jsfiddle.net/mplungjan/pymfg2uv/
const imgDiv = document.getElementById("imageDiv"); fetch(`https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&count=3`) .then(response => response.json()) .then(data => { imgDiv.innerHTML = data.map(item => `<div> <h3 class="title">${item.title} <span class="date">${item.date}</span></h3> <img src="${item.url}" /> <p>${item.explanation}</p></div>`).join('') }) .date { font-size: xx-small; } <div id="imageDiv"></div>Respuesta anterior con una imagen aleatoria de un rango de fechas
const img = document.getElementById("apod"); let date, start = Date.parse('2021-01-01'), end = new Date(); end.setDate(end.getDate()-1); const getDate = () => { date = new Date(Math.floor(Math.random() * (end - start + 1) + start)).toISOString().split('T')[0]; return date }; fetch(`https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&start_date=${getDate()}&end_date=${date}`) .then(response => response.json()) .then(data => { img.src = data[0].url }) <img id="apod" />