Tipos de cambio en Next.js y TypeScript
Consulta tipos de cambio desde un Server Component de Next.js, mantén la clave fuera del cliente y almacena la respuesta en caché sin ocultar cuándo cambió la observación subyacente.
Llama a exchangerate.dev desde un Server Component o Route Handler, nunca desde código del navegador que contenga tu clave. Next.js puede revalidar la solicitud cada 60 segundos, mientras source, market_session y data_updated_at explican qué representa el tipo almacenado.
EXCHANGERATE_API_KEY en una variable de entorno solo del servidor. No uses el prefijo NEXT_PUBLIC_.fetch del servidor con next: { revalidate: 60 } para evitar una solicitud externa por cada vista.data_updated_at; el timestamp de la respuesta no demuestra que la observación sea reciente.Consulta desde el servidor
Un Server Component se ejecuta fuera del navegador y puede leer una variable privada. Este ejemplo solicita EUR y GBP frente a USD, comprueba el estado HTTP y devuelve JSON tipado.
Almacena la solicitud y conserva la hora de observación
next: { revalidate: 60 } limita la vida de la caché a 60 segundos. Reduce llamadas duplicadas, pero no convierte un tipo de referencia diario en uno intradía. Conserva source, market_session y data_updated_at.
NEXT_PUBLIC_ pueden entrar en el paquete del navegador. Usa EXCHANGERATE_API_KEY solo en código del servidor. Las llamadas anónimas sirven para una prueba rápida; producción debe usar una clave.Separa la moneda mostrada de la moneda de liquidación
Una tienda puede mostrar un precio local aproximado con un tipo indicativo. El cobro final debe venir del proveedor de pagos porque comisiones, spreads, redondeo y hora de liquidación pueden cambiar el importe.
- Mantén la clave en el servidor.
- Almacena respuestas correctas, no errores 401 o 429.
- Muestra la fuente y la hora de observación cuando importe la frescura.
- Conserva el precio y la moneda originales como verdad de liquidación.