
Projektowanie API RESTful i integracja WebSocket
Budowanie i konsumowanie API danych rynkowych i handlowych
REST: zasoby i czasowniki
REST mapuje operacje CRUD na HTTP: GET do odczytu, POST do tworzenia, PATCH do częściowych aktualizacji, DELETE do usuwania. Używaj kodów statusu uczciwie — 200 z JSON-em błędu psuje klientów.
Wersjonuj w ścieżce (/v1/), paginuj długie listy (kursor dla strumieni tylko-do-dopisywania) i dokumentuj zmiany łamiące kompatybilność z oknem wygaszania (deprecation window).
Klucze i HMAC
Klucze API identyfikują; sekrety uwierzytelniają. Dla endpointów handlowych podpisuj HMAC-em kanoniczny ciąg (metoda + ścieżka + treść + znacznik czasu), żeby sekret nigdy nie przechodził przez sieć. Odrzucaj przestarzałe znaczniki czasu, aby blokować powtórki (replay) — powszechne okno to ±30 s.
OAuth pasuje do aplikacji stron trzecich; czyste boty handlowe zwykle trzymają się klucza i HMAC. Limity żądań: liczy się na 429 i respektuj nagłówek Retry-After.
Aktualizacja do WebSocket
Sesja zaczyna się jako HTTP GET z Upgrade: websocket; serwer odpowiada 101 Switching Protocols. Później ramki są tanie w porównaniu z powtarzanymi uzgodnieniami TLS przy odpytywaniu przez HTTP.
Wiadomości subskrypcyjne to zwykle JSON: metoda, kanały, a czasem sygnatury autoryzacyjne dla prywatnych wypełnień zleceń.
Księgi, transakcje, odbudowa stanu
Strumień transakcji to dane tikowe; księgi zleceń to snapshot + delty z numerami sekwencyjnymi. Jeśli ominiesz sekwencje, zsynchronizuj się ponownie od snapshotu REST, a następnie nakładaj delty z sekwencją większą niż numer snapshotu.
Heartbeat: wysyłaj ping albo oczekuj pingów od serwera; łącz się ponownie z losowym (jittered) narastającym odstępem, żeby uniknąć efektu stada (thundering herd).
GraphQL i OpenAPI
GraphQL ogranicza nadmiarowe pobieranie danych na potrzeby dashboardów; wiele giełd mimo to eksponuje REST dla krytycznych ścieżek handlowych. Specyfikacje OpenAPI (Swagger) pomagają w generowaniu kodu i testach — utrzymuj przykłady w formie łatwej do skopiowania.
Minimalny wzorzec konsumenta
Uruchom pętlę WebSocket w zadaniu, wpisuj ostatnie ceny do bezpiecznej dla wątków mapy, wystaw HTTP do kontroli stanu. Loguj liczbę ponownych połączeń; alarmuj, gdy nagle wzrasta.
Umieść testy podpisywania i przesunięcia zegara w CI: uszkodzony HMAC na produkcji jest nieodróżnialny od „rynek się poruszył”, dopóki nie przeanalizujesz logów.