FastAPI expone los endpoints, valida parametros y unifica respuestas.
Angular · FastAPI · CCXT · Criptomonedas
API de criptomonedas: explicacion del proyecto y arquitectura
Esta vista esta pensada como documentacion tecnica del proyecto. Aqui se explica como esta construida la API, que endpoints publica, como se autentica el cliente y como se consume desde Angular o Python.
La aplicacion funcional se ha separado para que el usuario que solo quiere consultar datos pueda hacerlo sin mezclarse con el contenido didactico.
Contexto del proyecto
El backend esta desplegado en FastAPI y utiliza CCXT para normalizar el acceso a distintos exchanges. Angular actua como cliente y consume endpoints autenticados mediante token JWT.
Esta separacion mejora el mantenimiento, permite reutilizar la API desde otros clientes y deja el frontend centrado en la experiencia de usuario, el SEO y la presentacion visual.
Base URL: https://criptodatabase.1938.com.es
1. Introduccion
En la version antigua la utilidad principal consistia en comparar el precio de un par en varios exchanges. En esta nueva version se mantiene esa idea, pero se mejora la arquitectura: ahora la logica de mercado vive en una API independiente y Angular actua unicamente como cliente.
Esto aporta varias ventajas: interfaz mas facil de mantener, reutilizacion del backend desde scripts, paneles internos o futuras apps, y una estructura mas limpia para ampliar funcionalidades como filtros, historicos o alertas.
2. Arquitectura
CCXT encapsula la comunicacion con exchanges y reduce diferencias de implementacion.
La autenticacion se realiza con JWT usando el endpoint /token.
Angular consume la API, organiza estados de carga, errores y visualizacion de resultados.
3. Ejemplos de integracion
Una de las mejoras de esta migracion es que la logica queda desacoplada. El backend puede reutilizarse desde Angular, Python, scripts internos o futuras aplicaciones moviles.
3.1 Obtener token con Python
3.2 Comparar un par con Python
3.3 Consumir la API desde Angular
4. Conceptos utiles
Que es un exchange?
Es una plataforma donde se negocian criptomonedas y otros pares digitales.
Que es un par?
Es la relacion entre dos activos, por ejemplo BTC/USDT o ETH/EUR.
Que significa bid/ask?
Bid es la mejor compra disponible y ask la mejor venta disponible.
Por que dos exchanges muestran precios distintos?
Porque la liquidez, el volumen, el libro de ordenes y la demanda no son identicos en todos los mercados.
5. Criterios para llevar esta API a un proyecto real
Una API de datos de mercado solo es util si el cliente entiende sus limites. Antes de usar este patron en produccion, lo importante no es solo llamar endpoints, sino controlar frescura, errores, autenticacion y coste operativo.
La tabla de comparacion debe leerse como una fotografia de mercado. Bid, ask y ultimo precio pueden cambiar entre peticiones, y un ultimo precio mas barato puede venir de un mercado poco liquido o desactualizado. Para analizar, combina la fotografia con volumen, timestamp, spread y comisiones.
Cachear listados de exchanges y catalogos de pares, porque no hace falta pedirlos en cada carga de pagina.
Aplicar timeouts y mensajes de error claros: las APIs de exchanges pueden fallar, limitar peticiones o devolver datos parciales.
No exponer credenciales de exchanges ni claves privilegiadas en Angular; el navegador debe hablar solo con tu backend.
Separar comparacion didactica de ejecucion de trading. Una diferencia de precio no es por si sola una señal de compra o venta.
Registrar errores del backend por exchange para detectar proveedores inestables en vez de mostrar fallos genericos.
6. Enlaces del proyecto
Aplicacion funcional
Vista separada para consultar exchanges, ticker, pares y comparacion de precios.
Objetivo de esta separacion
Separar documentacion y uso real mejora la experiencia, el SEO y la mantenibilidad del proyecto.