
RESTful API Design at WebSocket Integration
Paggawa at paggamit ng market data at trading API
REST: Resources at Verbs
Ang REST ay nagmamapa ng CRUD sa HTTP: GET para sa reads, POST para gumawa, PATCH para sa partial updates, DELETE para tanggalin. Gamitin ang status codes nang tapat — ang 200 na may error JSON ay sumisira sa mga client.
Mag-version sa path (/v1/), pahinain ang malaking listahan (cursor feeds para sa append-only streams), at idokumento ang breaking changes gamit ang deprecation window.
Keys at HMAC
Ang API keys ay nagkikilala; ang secrets ang nagpapatunay. Para sa trading endpoints, i-HMAC ang isang canonical string (method + path + body + timestamp) para hindi kailanman dumaan sa wire ang secret. Tanggihan ang stale na timestamps para harangin ang replays — ang ±30s ay isang karaniwang window.
Bagay ang OAuth para sa third-party apps; ang purong exchange bots ay madalas manatili sa key+HMAC. Rate limits: asahan ang 429 at igalang ang Retry-After.
WebSocket Upgrades
Nagsisimula ang session bilang HTTP GET na may Upgrade: websocket; ibabalik ng server ang 101 Switching Protocols. Matapos ito, mas mura ang frames kumpara sa paulit-ulit na TLS handshakes sa HTTP polling.
Ang subscribe messages ay karaniwang JSON: method, channels, at kung minsan auth signatures para sa private fills.
Books, Trades, Recovery
Ang trades stream ay tick data; ang books ay snapshot + delta na may sequence numbers. Kung nakaligtaan mo ang sequences, i-resync mula sa REST snapshot tapos ilapat ang deltas na may sequence > snapshot.
Heartbeat: magpadala ng ping o asahan ang server pings; kumonekta ulit gamit ang jittered backoff para maiwasan ang thundering herds.
GraphQL at OpenAPI
Ginagawang maigsi ng GraphQL ang over-fetching para sa dashboards; marami sa mga exchange ay nagbabahagi pa rin ng REST para sa trading hot paths. Ang OpenAPI (Swagger) specs ay nakakatulong sa codegen at QA — panatilihing copy-pasteable ang mga halimbawa.
Isang Minimal na Consumer Pattern
Patakbuhin ang WebSocket loop sa isang task, itulak ang mga huling presyo sa isang thread-safe na map, ilantad ang HTTP para sa health checks. I-log ang reconnect counts; magalerto kapag tumaas nang biglaan ang mga ito.
Ilagay ang signing at clock skew tests sa CI: ang sirang HMAC sa production ay hindi matukoy mula sa “gumalaw ang market” hanggang mag-audit ka ng logs.