راهنمای سریع¶
۵ دقیقه تا اولین درخواست¶
گام 1: دریافت توکن (۱ دقیقه)¶
export BASE_URL="https://api.example.com"
export CLIENT_ID="your_client_id"
export CLIENT_SECRET="your_client_secret"
# دریافت توکن
export JWT_TOKEN=$(curl -s -X POST "$BASE_URL/auth/login" \
-H "Content-Type: application/json" \
-d "{\"client_id\":\"$CLIENT_ID\",\"client_secret\":\"$CLIENT_SECRET\"}" | jq -r '.access_token')
echo "Token: ${JWT_TOKEN:0:20}..."
گام 2: مشاهده نمادها (۱ دقیقه)¶
# لیست نمادهای فعال
curl -X GET "$BASE_URL/api/exchange/v1/symbols?is_active=true&limit=5" \
-H "Authorization: Bearer $JWT_TOKEN" | jq '.items[] | {symbol, is_active}'
خروجی:
{"symbol": "BTC-IRR", "is_active": true}
{"symbol": "ETH-IRR", "is_active": true}
{"symbol": "USDT-IRR", "is_active": true}
گام 3: مشاهده قیمت (۱ دقیقه)¶
# قیمت لحظهای BTC
curl -X GET "$BASE_URL/api/exchange/v1/tickers/BTC-IRR" | jq '{symbol, last_price, daily_change}'
خروجی:
گام 4: مشاهده موجودی (۱ دقیقه)¶
# موجودی کیف پول
curl -X GET "$BASE_URL/api/accounting/v1/wallets" \
-H "Authorization: Bearer $JWT_TOKEN" | jq '.items[] | {currency, balance, available}'
خروجی:
{"currency": "IRR", "balance": "100000000", "available": "50000000"}
{"currency": "BTC", "balance": "0.5", "available": "0.5"}
گام 5: ثبت اولین سفارش (۱ دقیقه)¶
# سفارش خرید
curl -X POST "$BASE_URL/api/exchange/v1/orders" \
-H "Authorization: Bearer $JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"symbol": "BTC-IRR",
"side": "buy",
"type": "limit",
"price": "1000000000",
"quantity": "0.1"
}' | jq '{uid, status, symbol, side, price, quantity}'
خروجی:
{
"uid": "ord_123abc",
"status": "active",
"symbol": "BTC-IRR",
"side": "buy",
"price": "1000000000",
"quantity": "0.1"
}
گردش کار کامل¶
۱. احراز هویت¶
# دریافت توکن
curl -X POST "$BASE_URL/auth/login" \
-H "Content-Type: application/json" \
-d '{"client_id":"...","client_secret":"..."}'
۲. مشاهده بازار¶
# نمادها
curl "$BASE_URL/api/exchange/v1/symbols" -H "Authorization: Bearer $JWT_TOKEN"
# قیمتها
curl "$BASE_URL/api/exchange/v1/tickers/BTC-IRR"
# عمق بازار
curl "$BASE_URL/api/exchange/v1/depth/BTC-IRR"
۳. مدیریت مالی¶
# موجودی
curl "$BASE_URL/api/accounting/v1/wallets" -H "Authorization: Bearer $JWT_TOKEN"
# واریز
curl -X POST "$BASE_URL/api/accounting/v1/wallets/wallet_123/deposit" \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{"amount":"100000000","currency":"IRR","payment_method":"bank_transfer","reference_id":"ref_123"}'
# برداشت
curl -X POST "$BASE_URL/api/accounting/v1/wallets/wallet_123/withdraw" \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{"amount":"50000000","currency":"IRR","destination":"bank","destination_address":"IR123..."}'
۴. معاملات¶
# ایجاد سفارش
curl -X POST "$BASE_URL/api/exchange/v1/orders" \
-H "Authorization: Bearer $JWT_TOKEN" \
-d '{"symbol":"BTC-IRR","side":"buy","type":"limit","price":"1000000000","quantity":"0.5"}'
# لیست سفارشات
curl "$BASE_URL/api/exchange/v1/orders?status=active" -H "Authorization: Bearer $JWT_TOKEN"
# لغو سفارش
curl -X POST "$BASE_URL/api/exchange/v1/orders/ord_123/cancel" -H "Authorization: Bearer $JWT_TOKEN"
# لیست معاملات
curl "$BASE_URL/api/exchange/v1/trades" -H "Authorization: Bearer $JWT_TOKEN"
اسکریپت کامل¶
#!/bin/bash
# تنظیمات
BASE_URL="https://api.example.com"
CLIENT_ID="your_client_id"
CLIENT_SECRET="your_client_secret"
echo "=== شروع معامله ==="
# 1. Login
echo "1. دریافت توکن..."
LOGIN=$(curl -s -X POST "$BASE_URL/auth/login" \
-H "Content-Type: application/json" \
-d "{\"client_id\":\"$CLIENT_ID\",\"client_secret\":\"$CLIENT_SECRET\"}")
JWT_TOKEN=$(echo $LOGIN | jq -r '.access_token')
echo "✓ توکن دریافت شد"
# 2. Check balance
echo "2. بررسی موجودی..."
curl -s "$BASE_URL/api/accounting/v1/wallets" \
-H "Authorization: Bearer $JWT_TOKEN" | jq '.items[] | {currency, available}'
# 3. Check price
echo "3. بررسی قیمت..."
PRICE=$(curl -s "$BASE_URL/api/exchange/v1/tickers/BTC-IRR" | jq -r '.last_price')
echo "قیمت فعلی: $PRICE IRR"
# 4. Create order
echo "4. ثبت سفارش..."
ORDER=$(curl -s -X POST "$BASE_URL/api/exchange/v1/orders" \
-H "Authorization: Bearer $JWT_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"symbol\": \"BTC-IRR\",
\"side\": \"buy\",
\"type\": \"limit\",
\"price\": \"$PRICE\",
\"quantity\": \"0.1\"
}")
ORDER_ID=$(echo $ORDER | jq -r '.uid')
echo "✓ سفارش ثبت شد: $ORDER_ID"
# 5. Check orders
echo "5. لیست سفارشات فعال..."
curl -s "$BASE_URL/api/exchange/v1/orders?status=active" \
-H "Authorization: Bearer $JWT_TOKEN" | jq '.items[] | {uid, symbol, side, price, quantity}'
echo "=== پایان ==="
نکات کلیدی¶
✅ انجام دهید¶
- همیشه از HTTPS استفاده کنید
- توکن را در متغیر محیطی ذخیره کنید
- خطاهای احتمالی را مدیریت کنید
- از jq برای پردازش JSON استفاده کنید
❌ انجام ندهید¶
- توکن را در کد قرار ندهید
- از HTTP استفاده نکنید
- درخواستها را بدون بررسی خطا ارسال نکنید
دستورات مفید¶
# ذخیره پاسخ در فایل
curl ... > response.json
# نمایش هدرها
curl -I ...
# نمایش جزئیات
curl -v ...
# با jq
curl ... | jq '.items[] | {field1, field2}'
بعدی: مطالعه FAQ برای سوالات متداول