Estoy creando una aplicación de pronóstico del tiempo y, para obtener datos de una ciudad específica, tengo una URL dinámica (/forecast/[id]) con la identificación de la ciudad de open-meteo . Para obtener la latitud y longitud reales, quiero hacer una llamada de API a la API de geocodificación de Open-Meteo para luego usar la latitud y longitud recuperadas y la zona horaria para realizar otra solicitud a la API de pronóstico de Open-Meteo. Pero desafortunadamente no pude hacerlo funcionar.
Aquí está mi código actual:
<script setup> const route = useRoute() const id = route.params.id const lat = ref(null) const lon = ref(null) const timezone = ref("") const {data: locationdata} = await useAsyncData("geocode", () => $fetch(`https://geocoding-api.open-meteo.com/v1/get?id=${id}`) ).then((res) => { lat.value = res.data.value.latitude lon.value = res.data.value.longitude timezone.value = res.data.value.timezone }) const { data: weatherdata, pending } = await useAsyncData("weatherdata", () => $fetch(`https://api.open-meteo.com/v1/forecast?latitude=${lat}&longitude=${lon}&hourly=temperature_2m,relativehumidity_2m,surface_pressure,precipitation,weathercode,windspeed_10m,winddirection_10m,windgusts_10m¤t_weather=true&windspeed_unit=kn&timezone=${timezone}`) ).catch((e) => { console.log(e) }) </script> <template> <pre><code>{{weatherdata}}</code></pre> </template>