🔌

استانداردهای API — هر معامله‌گری باید بداند

API یعنی پلی بین نرم‌افزار شما و سرور. در این مقاله با مفاهیم REST، HTTP methods، status codes و نحوه‌ی کار با API کارگزاری‌ها آشنا می‌شویم.

توحید شمس‌پور۱۵ مهر ۱۴۰۵۰ بازدید

API چیست؟

API (Application Programming Interface) به‌سادگی یک قرارداد است که مشخص می‌کند دو نرم‌افزار چگونه با هم صحبت کنند. در دنیای بورس، API کارگزاری به نرم‌افزار شما اجازه می‌دهد بدون نیاز به کلیک دستی، سفارش خرید یا فروش ارسال کنید، موجودی حساب را ببینید، یا قیمت‌های لحظه‌ای را دریافت کنید.

فکر کنید API یک گارسون در رستوران است. شما (کلاینت) منو را می‌بینید، سفارش می‌دهید، و گارسون (API) سفارش را به آشپزخانه (سرور) می‌برد و غذای آماده را به شما برمی‌گرداند. شما نیازی ندارید بدانید آشپزخانه چطور کار می‌کند — فقط باید بدانید چطور سفارش بدهید.

REST API — استاندارد رایج

REST (Representational State Transfer) محبوب‌ترین سبک طراحی API است. در REST، هر منبع (resource) یک URL منحصربه‌فرد دارد و عملیات‌ها با HTTP methods مشخص می‌شوند.

HTTP Methods (افعال HTTP)

متدکاربردمثال در کارگزاری
GETدریافت اطلاعاتدریافت قیمت لحظه‌ای نماد
POSTایجاد یک منبع جدیدثبت سفارش خرید
PUTبه‌روزرسانی کاملویرایش کامل سفارش
PATCHبه‌روزرسانی جزئیتغییر فقط تعداد سفارش
DELETEحذفلغو سفارش

Status Codes — کدهای وضعیت HTTP

هر پاسخ API یک کد عددی ۳ رقمی برمی‌گرداند که نشان می‌دهد درخواست چه نتیجه‌ای داشته:

کدهای ۲xx — موفقیت

  • 200 OK — درخواست موفق بود (مثلاً قیمت با موفقیت برگشت).
  • 201 Created — منبع جدید ساخته شد (مثلاً سفارش با موفقیت ثبت شد).
  • 204 No Content — موفق، بدون محتوای بازگشتی (مثلاً پس از حذف).

کدهای ۴xx — خطای کلاینت (شما)

  • 400 Bad Request — درخواست شما اشتباه است (مثلاً JSON نامعتبر).
  • 401 Unauthorized — لاگین نکرده‌اید یا توکن منقضی شده.
  • 403 Forbidden — لاگین کرده‌اید ولی اجازه‌ی این عمل را ندارید.
  • 404 Not Found — منبع پیدا نشد (مثلاً نماد اشتباه).
  • 429 Too Many Requests — محدودیت تعداد درخواست (Rate Limit) — باید کندتر بزنید.

کدهای ۵xx — خطای سرور

  • 500 Internal Server Error — خطای داخلی سرور کارگزاری.
  • 502 Bad Gateway — سرور کارگزاری در دسترس نیست.
  • 503 Service Unavailable — سرور موقتاً از کار افتاده (مثلاً زمان تعطیلی بازار).

احراز هویت در API

اکثر APIهای کارگزاری نیاز به احراز هویت دارند. روش‌های رایج:

  1. Bearer Token (JWT): یک توکن بلندمدت در هدر Authorization: Bearer <token> ارسال می‌شود.
  2. API Key: یک کلید ثابت در هدر X-API-Key.
  3. OAuth2: جریان چندمرحله‌ای که توکن کوتاه‌مدت می‌دهد — امن‌ترین روش.
  4. Cookie/Session: مانند لاگین در مرورگر — برای APIهای قدیمی‌تر.

Body و JSON

برای ارسال داده‌ها به API (مثلاً اطلاعات سفارش)، معمولاً از فرمت JSON در بدنه‌ی درخواست استفاده می‌شود. مثال:

POST /api/v1/orders
Content-Type: application/json
Authorization: Bearer eyJhbGc...

{
  "symbol": "خودرو",
  "side": "buy",
  "quantity": 100,
  "price": 3500,
  "type": "limit"
}

Headers — هدرهای مهم

هدرتوضیح
Content-Typeنوع داده‌ی بدنه — معمولاً application/json
Authorizationتوکن احراز هویت
Acceptچه نوع پاسخی قبول می‌کنید
User-Agentمشخصات کلاینت — برخی سرورها بر اساس آن فیلتر می‌کنند

Rate Limiting — محدودیت درخواست

سرورهای API برای جلوگیری از آسیب، تعداد درخواست‌های یک کاربر را محدود می‌کنند. مثلاً:

  • نهایتاً ۶۰ درخواست در دقیقه
  • نهایتاً ۱۰ درخواست در ثانیه

اگر محدودیت را رعایت نکنید، کد 429 دریافت می‌کنید و سرور موقتاً شما را مسدود می‌کند. ربات‌های حرفه‌ای این محدودیت‌ها را به‌صورت خودکار رعایت می‌کنند.

جمع‌بندی

API زبان مشترک بین نرم‌افزار شما و سرور کارگزاری است. درک REST، HTTP methods، status codes، احراز هویت و محدودیت‌ها، برای هر معامله‌گری که می‌خواهد از ربات استفاده کند ضروری است. ربات سرخطچی تمام این مفاهیم را به‌صورت خودکار مدیریت می‌کند — شما فقط URL، هدرها و بدنه‌ی درخواست را وارد می‌کنید و ربات بقیه را انجام می‌دهد.