
Conception d'API RESTful et intégration WebSocket
Construire et consommer des API de données de marché et de trading
REST : ressources et verbes
REST fait correspondre le CRUD au HTTP : GET pour la lecture, POST pour la création, PATCH pour les mises à jour partielles, DELETE pour la suppression. Utilisez les codes de statut honnêtement — un 200 accompagné d'une erreur en JSON casse les clients.
Versionnez dans le chemin (/v1/), paginez les grandes listes (flux par curseur pour les flux en ajout uniquement), et documentez les changements cassants avec une fenêtre de dépréciation.
Clés et HMAC
Les clés API identifient ; les secrets prouvent. Pour les points de terminaison de trading, appliquez un HMAC à une chaîne canonique (méthode + chemin + corps + horodatage) afin que le secret ne circule jamais sur le fil. Rejetez les horodatages périmés pour bloquer les rejeux — une fenêtre de ±30 s est courante.
OAuth convient aux applications tierces ; les bots purement destinés aux plateformes restent souvent sur clé + HMAC. Limites de débit : attendez-vous à des 429 et respectez l'en-tête Retry-After.
Les upgrades WebSocket
La session démarre comme un GET HTTP avec Upgrade: websocket ; le serveur renvoie 101 Switching Protocols. Ensuite, les trames coûtent peu comparées aux poignées de main TLS répétées d'un polling HTTP.
Les messages d'abonnement sont généralement en JSON : méthode, canaux, et parfois des signatures d'authentification pour les exécutions privées.
Carnets, transactions, récupération
Le flux de transactions est constitué de données tick ; les carnets sont snapshot + delta avec des numéros de séquence. Si vous manquez des séquences, resynchronisez à partir d'un snapshot REST puis appliquez les deltas dont la séquence est supérieure au snapshot.
Battement de cœur (heartbeat) : envoyez un ping ou attendez-vous à des pings du serveur ; reconnectez-vous avec un backoff aléatoire (jitter) pour éviter les effets de troupeau.
GraphQL et OpenAPI
GraphQL réduit la surextraction de données pour les tableaux de bord ; de nombreuses plateformes exposent encore REST pour les chemins critiques du trading. Les spécifications OpenAPI (Swagger) aident à la génération de code et au QA — gardez les exemples copiables-collables.
Un schéma de consommateur minimal
Faites tourner la boucle WebSocket dans une tâche, poussez les derniers prix dans une map thread-safe, exposez du HTTP pour les vérifications de santé. Journalisez le nombre de reconnexions ; alertez quand il grimpe.
Mettez des tests de signature et de dérive d'horloge en intégration continue : un HMAC cassé en production est indissociable de « le marché a bougé » jusqu'à ce que vous auditiez les journaux.