Estoy obteniendo una API de tipos de cambio. La API se ve así: https://v6.exchangerate-api.com/v6/Your-Api-Key/latest/AMD , donde "Your-API-Key" es mi clave personal. Si la URL de la API termina en USD o AMD, la API reconoce la moneda base como USD o AMD y luego proporciona el tipo de cambio en otras monedas, incluida la moneda base.
Por ejemplo:
HTML:
<select name="BaseCurrency" id="BaseCurrency"> <option value="NGN">NGN</option> <option value="USD">USD</option> <option value="ALL">ALL</option> </select>Código JavaScript:
async function fetchCurrencyData() { let baseCurrencyValue = document.getElementById("BaseCurrency").value; console.log(baseCurrencyValue) // logs selected HTML option value, say "NGN" or "USD", based on user selection. let result = await fetch(`https://v6.exchangerate-api.com/v6/My-Api-Key/latest/${baseCurrencyValue}`); let record = await result.json(); console.log("Hey " + JSON.stringify(record.conversion_rates.baseCurrencyValue)); //This logs "Hey undefined" but when I replace baseCurrencyValue with an actual currency code, like USD, it prints out the correct rate"¿Qué puedo hacer para asegurarme de que funcione la concatenación de la variable "baseCurrencyValue" al final de la API? Porque necesito permitir que la elección del usuario sea la moneda base
También he intentado concatenar con el signo más:
let result = await fetch("https://v6.exchangerate-api.com/v6/My-Api-Key/latest/" + baseCurrencyValue);Pero tampoco funciona.
Te aseguras de que funcionará controlando qué entradas aceptas. También noté que hay un problema de CORS con esta API, que se puede solucionar con corsAnywhere. Idealmente, debería llamar a API externas en su backend, no en su frontend.
<select name="BaseCurrency" id="base-currency"> <option value="NGN">NGN</option> <option value="USD">USD</option> <option value="ALL">ALL</option> </select> <button onclick="fetchCurrencyData()">click</button> <script> async function fetchCurrencyData() { const baseCurrencyValue = document.getElementById('base-currency').value; const result = await fetch( `https://cors-anywhere.herokuapp.com/https://v6.exchangerate-api.com/v6/APIKEYHERE/latest/${baseCurrencyValue}` ); const { conversion_rates } = await result.json(); console.log(conversion_rates); } </script>