
Diseño de API RESTful e integración con WebSocket
Construir y consumir datos de mercado y APIs de trading
REST: recursos y verbos
REST mapea CRUD a HTTP: GET para lecturas, POST para crear, PATCH para actualizaciones parciales, DELETE para eliminar. Usa los códigos de estado con honestidad — un 200 con un JSON de error rompe a los clientes.
Versiona en la ruta (/v1/), pagina las listas largas (feeds por cursor para flujos de solo-anexado) y documenta los cambios que rompen compatibilidad con una ventana de desuso (deprecation).
Claves y HMAC
Las claves de API identifican; los secretos prueban. Para los endpoints de trading, aplica HMAC sobre una cadena canónica (método + ruta + cuerpo + marca de tiempo) para que el secreto nunca viaje por la red. Rechaza marcas de tiempo obsoletas para bloquear ataques de repetición — ±30 s es una ventana habitual.
OAuth se adapta a las apps de terceros; los bots de exchange puros suelen quedarse con clave + HMAC. Límites de tasa: espera respuestas 429 y respeta el encabezado Retry-After.
Actualizaciones de WebSocket (upgrades)
La sesión empieza como un GET HTTP con Upgrade: websocket; el servidor devuelve 101 Switching Protocols. A partir de ahí, los frames son baratos comparados con los handshakes TLS repetidos de un polling por HTTP.
Los mensajes de suscripción suelen ser JSON: método, canales y, a veces, firmas de autenticación para las ejecuciones privadas.
Libros, operaciones y recuperación
El stream de operaciones son datos tick a tick; los libros son snapshot + delta con números de secuencia. Si te pierdes secuencias, resincroniza desde un snapshot de REST y luego aplica los deltas con secuencia > secuencia del snapshot.
Heartbeat: envía un ping o espera pings del servidor; reconecta con backoff con jitter para evitar estampidas (thundering herd).
GraphQL y OpenAPI
GraphQL recorta el sobre-fetching en los dashboards; muchos exchanges siguen exponiendo REST para las rutas críticas de trading. Las especificaciones OpenAPI (Swagger) ayudan a la generación de código y al QA — mantén los ejemplos copiables y pegables.
Un patrón mínimo de consumidor
Ejecuta el bucle de WebSocket en una tarea, empuja los últimos precios a un mapa seguro para hilos, expón HTTP para comprobaciones de salud (health checks). Registra los recuentos de reconexión; alerta cuando se disparen.
Pon las pruebas de firma y de desfase de reloj (clock skew) en CI: un HMAC roto en producción es indistinguible de «el mercado se ha movido» hasta que auditas los registros.