أريز Docs

الأخطاء

رموز الأخطاء وكيفية معالجتها

الأخطاء

شكل الخطأ

جميع أخطاء API تتبع هذا الشكل:

{
  "error": "Insufficient credits. Please top up your account.",
  "code": "INSUFFICIENT_BALANCE",
  "required": 5,
  "available": 2,
  "topUpUrl": "/dashboard/billing"
}

رموز الأخطاء

أخطاء المصادقة (4xx)

الرمزHTTPالوصف
UNAUTHORIZED401مفتاح API غير صالح
ACCOUNT_SUSPENDED403الحساب موقوف - تواصل مع الدعم

أخطاء الرصيد

الرمزHTTPالوصف
INSUFFICIENT_BALANCE402الرصيد غير كافٍ لتنفيذ الطلب

حد الطلبات

الرمزHTTPالوصف
RATE_LIMIT_EXCEEDED429تجاوزت حد الطلبات، يرجى الانتظار قبل المحاولة

أخطاء الطلب

الرمزHTTPالوصف
BAD_REQUEST400طلب غير صالح

أخطاء الخادم

الرمزHTTPالوصف
INTERNAL_ERROR500خطأ داخلي في الخادم

معالجة الأخطاء

JavaScript

import { AraseClient, AraseAPIError } from "arase";

const client = new AraseClient();

try {
  const result = await client.search("بحث");
} catch (error) {
  if (error instanceof AraseAPIError) {
    switch (error.code) {
      case "UNAUTHORIZED":
        console.log("مفتاح API غير صالح - تحقق من المفتاح");
        break;

      case "ACCOUNT_SUSPENDED":
        console.log("الحساب موقوف - تواصل مع الدعم");
        break;

      case "INSUFFICIENT_BALANCE":
        console.log("رصيد غير كافي - اشحن رصيدك");
        break;

      case "RATE_LIMIT_EXCEEDED":
        console.log("تجاوزت حد الطلبات - انتظر");
        break;

      default:
        console.log(error.message);
    }
  }
}

Python

from arase import AraseClient, AraseAPIError

client = AraseClient()

try:
    result = client.search('بحث')
except AraseAPIError as e:
    if e.code == 'UNAUTHORIZED':
        print('مفتاح API غير صالح')

    elif e.code == 'ACCOUNT_SUSPENDED':
        print('الحساب موقوف - تواصل مع الدعم')

    elif e.code == 'INSUFFICIENT_BALANCE':
        print('رصيد غير كافي - اشحن رصيدك')

    elif e.code == 'RATE_LIMIT_EXCEEDED':
        print('تجاوزت حد الطلبات - انتظر')

    else:
        print(e.message)

Headers الاستجابة

كل استجابة تتضمن headers مفيدة:

Headerالوصف
X-Response-Timeوقت معالجة الطلب (مللي ثانية)
X-Credits-Costعدد الطلبات المخصومة
X-Credits-Remainingالرصيد المتبقي
X-RateLimit-Remainingالطلبات المتبقية في النافذة الحالية
X-RateLimit-Resetثواني حتى إعادة تعيين حد الطلبات

مثال على Headers الاستجابة

HTTP/1.1 200 OK
X-Response-Time: 234
X-Credits-Cost: 3
X-Credits-Remaining: 97
X-RateLimit-Remaining: 58

استجابة تجاوز حد الطلبات

عند تجاوز حد الطلبات:

{
  "error": "Rate limit exceeded. Please try again later.",
  "code": "RATE_LIMIT_EXCEEDED",
  "retryAfter": 60,
  "plan": "free"
}

ترقية باقتك للحصول على حد طلبات أعلى. راجع الأسعار.


استجابة رصيد غير كافٍ

عندما لا يكون لديك رصيد كافٍ:

{
  "error": "Insufficient credits. Please top up your account.",
  "code": "INSUFFICIENT_BALANCE",
  "required": 5,
  "available": 2,
  "breakdown": {
    "base": 1,
    "images": 1,
    "news": 1,
    "answer": 1,
    "depth": 1
  },
  "topUpUrl": "/dashboard/billing"
}

في هذه الصفحة