رموز حالة HTTP
| Status | المعنى | قابل لإعادة المحاولة |
|---|---|---|
| 200 | نجاح | غير ذي صلة |
| 400 | طلب سيئ (معاملات غير صالحة أو رمز غير صالح أو برنامج رمز غير مدعوم) | لا |
| 401 | غير مصرح (مفتاح API مفقود أو غير صالح) | لا |
| 404 | سوق غير مدعوم أو رمز لم يُفهرس بعد | لا (انظر أدناه) |
| 422 | غير قابل للمعالجة (طلب صالح لكن لا مسار قابل للتنفيذ) | لا |
| 429 | محدود المعدل | نعم |
| 502 | بوابة سيئة (فشل RPC أو تبادل لامركزي) | نعم |
| 503 | الخدمة غير متاحة (الموجه غير جاهز أو متوقف) | نعم |
| 500 | خطأ خادم داخلي | نعم |
مغلفات الاستجابة
نجاح
سوق غير مدعوم
يُعاد عندما لا يوجد مسار قابل للتنفيذ للرمز على أي تبادل لامركزي مدعوم. يوفر حقلmessage شرحاً مقروئاً.
| Reason | Status | Description |
|---|---|---|
no_route | 404 | لا يوجد تبادل لامركزي مدعوم لديه مجمع لهذا الرمز |
invalid_mint | 400 | عنوان الرمز غير موجود على السلسلة |
unsupported_token_program | 400 | الرمز يستخدم برنامجاً غير SPL Token أو Token-2022 |
لم يُفهرس
يُعاد عندما يوجد الرمز لكن لم يتم حله بعد. أعد المحاولة بعد تأخير قصير.خطأ
استجابات أخطاء عامة لإخفاقات التحقق وحدود المعدل وأخطاء الخادم.ExitApiError.
أنواع ExitApiError
تكشف كل حزمة تطوير ExitApiError (أو ما يعادله) بمميز kind:
| Kind | المحفز | قابل لإعادة المحاولة |
|---|---|---|
transport | فشل شبكة أو خطأ DNS أو مهلة | نعم |
http_status | استجابة HTTP غير 2xx | نعم إذا الحالة >= 500 أو 429 |
envelope_status | الخادم أعاد { "status": "error" } | لا |
parse | لم يمكن تحليل جسم الاستجابة كـ JSON | لا |
التحقق من قابلية إعادة المحاولة
سلوك إعادة المحاولة المدمج
تتضمن جميع حزم التطوير إعادة محاولة تلقائية بهذه الافتراضيات:| Setting | Default Value |
|---|---|
| Max attempts | 2 |
| Initial backoff | 25 ms |
| Max backoff | 25 ms |
| Jitter | 25 ms |
| Connect timeout | 200 ms |
| Attempt timeout | 900 ms |
isRetryable() القيمة true (إخفاقات النقل واستجابات 5xx و429 لحدود المعدل).
تخصيص سياسة إعادة المحاولة
أفضل الممارسات
- لا تعد المحاولة لأخطاء
400أو401أو422. هذه تشير إلى مشكلة في الطلب أو المصادقة يجب إصلاحها في الكود. - لا تعد المحاولة لـ
404مع"status": "unsupported". الرمز ليس لديه سوق مدعوم. - أعد المحاولة مرة لـ
404مع"status": "not_indexed". قد يحتاج الرمز لحظة للحل. - تراجع أسياً عند استجابات
429. تتعامل إعادة المحاولة المدمجة مع هذا تلقائياً. - أعد المحاولة مع تراجع عند أخطاء
502و503. هذه مشاكل بنية تحتية عابرة. - سجّل تفاصيل الأخطاء بما في ذلك
kindوstatusوbodyللتصحيح. - إذا رأيت أخطاء
envelope_statusمتكررة، تحقق من صحة عنوانmintوuser_pubkey.

