
Desain API RESTful dan Integrasi WebSocket
Membangun dan mengonsumsi data pasar serta API trading
REST: Resource dan Verb
REST memetakan CRUD ke HTTP: GET untuk membaca, POST untuk membuat, PATCH untuk update sebagian, DELETE untuk menghapus. Gunakan status code secara jujur — 200 dengan JSON error merusak klien.
Beri versi di path (/v1/), lakukan pagination untuk daftar besar (cursor feed untuk stream append-only), dan dokumentasikan breaking change dengan jendela deprecation.
Key dan HMAC
API key mengidentifikasi; secret membuktikan. Untuk endpoint trading, buat HMAC dari sebuah string kanonik (method + path + body + timestamp) sehingga secret tidak pernah melewati jaringan. Tolak timestamp yang basi untuk mencegah replay — ±30 detik adalah jendela yang umum dipakai.
OAuth cocok untuk aplikasi pihak ketiga; bot exchange murni sering tetap memakai key+HMAC. Rate limit: siapkan diri untuk 429 dan hormati header Retry-After.
Upgrade WebSocket
Sesi dimulai sebagai HTTP GET dengan Upgrade: websocket; server mengembalikan 101 Switching Protocols. Setelah itu, frame jauh lebih murah dibanding melakukan handshake TLS berulang lewat polling HTTP.
Pesan subscribe biasanya berupa JSON: method, channel, dan terkadang tanda tangan otentikasi untuk fill privat.
Order Book, Transaksi, Recovery
Stream trades adalah data tick; order book adalah snapshot + delta dengan nomor sequence. Jika kamu melewatkan sequence, resync dari snapshot REST lalu terapkan delta dengan sequence > snapshot.
Heartbeat: kirim ping atau harapkan ping dari server; reconnect dengan backoff yang di-jitter untuk menghindari thundering herd.
GraphQL dan OpenAPI
GraphQL memangkas over-fetching untuk dashboard; banyak exchange masih menyediakan REST untuk hot path trading. Spesifikasi OpenAPI (Swagger) membantu codegen dan QA — pastikan contoh-contohnya bisa disalin-tempel langsung.
Pola Consumer Minimal
Jalankan loop WebSocket dalam sebuah task, dorong harga terakhir ke dalam map yang thread-safe, sediakan HTTP untuk health check. Catat log jumlah reconnect; beri alert saat jumlahnya melonjak.
Masukkan tes signing dan clock skew ke dalam CI: HMAC yang rusak di produksi tidak bisa dibedakan dari "pasar sedang bergerak" sampai kamu mengaudit log-nya.