
RESTful API ڈیزائن اور WebSocket انٹیگریشن
مارکیٹ ڈیٹا اور ٹریڈنگ APIs بنانا اور استعمال کرنا
REST: وسائل اور فعل
REST CRUD کو HTTP سے میپ کرتا ہے: پڑھنے کے لیے GET، بنانے کے لیے POST، جزوی اپڈیٹس کے لیے PATCH، ہٹانے کے لیے DELETE۔ اسٹیٹس کوڈز ایمانداری سے استعمال کریں — ایرر JSON کے ساتھ 200 کلائنٹس کو توڑ دیتا ہے۔
پاتھ میں ورژن رکھیں (/v1/)، بڑی فہرستوں کو پیج بنائیں (append-only اسٹریمز کے لیے کرسر فیڈز)، اور بریکنگ تبدیلیوں کو ایک ڈیپریکیشن ونڈو کے ساتھ دستاویزی کریں۔
کلیدیں اور HMAC
API کلیدیں شناخت کرتی ہیں؛ سیکرٹس ثابت کرتے ہیں۔ ٹریڈنگ اینڈ پوائنٹس کے لیے، ایک کینونیکل اسٹرنگ (میتھڈ + پاتھ + باڈی + ٹائم اسٹیمپ) کو HMAC کریں تاکہ سیکرٹ کبھی وائر پر سفر نہ کرے۔ ری پلیز کو روکنے کے لیے باسی ٹائم اسٹیمپس مسترد کریں — ±30 سیکنڈ ایک عام ونڈو ہے۔
OAuth تھرڈ-پارٹی ایپس کے لیے فٹ بیٹھتا ہے؛ خالص ایکسچینج بوٹس اکثر کلید+HMAC پر رہتے ہیں۔ ریٹ حدیں: 429 کی توقع رکھیں اور Retry-After کا احترام کریں۔
WebSocket اپگریڈز
سیشن HTTP GET کے طور پر Upgrade: websocket کے ساتھ شروع ہوتا ہے؛ سرور 101 Switching Protocols واپس کرتا ہے۔ اس کے بعد، فریمز HTTP پولنگ پر دہرائے گئے TLS ہینڈشیکس کے مقابلے سستے ہیں۔
سبسکرائب پیغامات عام طور پر JSON ہوتے ہیں: میتھڈ، چینلز، اور کبھی کبھی پرائیویٹ فِلز کے لیے آتھ سگنیچرز۔
بکس، ٹریڈز، بحالی
ٹریڈز اسٹریم ٹِک ڈیٹا ہے؛ بکس ترتیبی نمبروں کے ساتھ اسنیپ شاٹ + ڈیلٹا ہیں۔ اگر آپ ترتیبیں مِس کریں، تو REST اسنیپ شاٹ سے دوبارہ سِنک کریں پھر sequence > snapshot والے ڈیلٹاز لگائیں۔
ہارٹ بیٹ: پنگ بھیجیں یا سرور پنگز کی توقع رکھیں؛ تھنڈرنگ ہرڈز سے بچنے کے لیے جِٹرڈ بیک آف کے ساتھ دوبارہ کنیکٹ کریں۔
GraphQL اور OpenAPI
GraphQL ڈیش بورڈز کے لیے زائد-فیچنگ کاٹتا ہے؛ بہت سے ایکسچینجز اب بھی ٹریڈنگ ہاٹ پاتھس کے لیے REST ظاہر کرتے ہیں۔ OpenAPI (Swagger) اسپیکس کوڈجن اور QA میں مدد دیتے ہیں — مثالوں کو کاپی-پیسٹ کے قابل رکھیں۔
ایک کم از کم کنزیومر پیٹرن
WebSocket لوپ کو ایک ٹاسک میں چلائیں، آخری قیمتوں کو ایک تھریڈ-سیف میپ میں دھکیلیں، صحت چیکس کے لیے HTTP ظاہر کریں۔ دوبارہ کنیکٹ کی تعداد لاگ کریں؛ جب یہ اسپائیک ہو تو الرٹ کریں۔
سائننگ اور کلاک اسکیو ٹیسٹس CI میں رکھیں: پروڈکشن میں ایک ٹوٹی ہوئی HMAC "مارکیٹ حرکت کر گئی" سے الگ نہیں کی جا سکتی جب تک آپ لاگز کا آڈٹ نہ کریں۔