وثائق المطورين

حزمة رسمية للـ TypeScript وأخرى لـ PHP. نفس العقد، نفس المسارات، نفس الصلاحيات التي يفحصها تطبيق قُرب نفسه.

TypeScript1.7.0PHP1.7

الأخطاء

كل شيء يرمي خطأً واحداً برمز ثابت.

ts
import { GurbApiError } from '@gurb/server'

try {
  await gurb.blogs.list()
} catch (e) {
  if (e instanceof GurbApiError && e.code === 'FEATURE_NOT_AVAILABLE') {
    // blogs are not on this community's plan
  }
}
php
try {
    $gurb->blogs->list();
} catch (Gurb\GurbApiException $e) {
    if ($e->code === Gurb\GurbErrorCode::FeatureNotAvailable) {
        // blogs are not on this community's plan
    }
}

الرموز التي ستقابلها فعلاً

الرمزمعناه
INVALID_API_KEYالمفتاح غير صالح الشكل أو غير معروف للخادم.
API_KEY_REVOKEDالمفتاح كان صالحاً وأُلغي. الإلغاء نهائي بالتصميم.
VALIDATION_ERRORالطلب مرفوض. مع الحالة صفر يعني الرفض محلي ولم يُرسل شيء.
NOT_FOUNDالمعرّف لا يسمّي شيئاً — أو يسمّي شيئاً في مجتمع آخر. الردّان متطابقان عمداً، فلا يمكن استخدام المسار لاكتشاف ما هو موجود في مجتمعات أخرى.
FEATURE_NOT_AVAILABLEخطة المجتمع لا تشمل هذا القسم. استحقاق لا صلاحية؛ لا منحة تصلحه.
FORBIDDENصاحب المفتاح لا يملك الصلاحية المطلوبة لهذا الإجراء.
RATE_LIMITEDتجاوزت الحد. التعليقات والإعجابات محدودة المعدّل.
NETWORK_ERRORلم يصل رد صالح — مهلة، أو وسيط أعاد صفحة غير JSON.

الحالة صفر تعني أن شيئاً لم يُرسل

الفحوص المحلية ترفض قبل أي نداء شبكي وتحمل الحالة صفر. هذي إشارة مهمة لو عندك منطق إعادة محاولة: خطأ 5xx يستحق المحاولة ثانية، وهذا لا يستحقها أبداً — الطلب سيكون مطابقاً وكذلك الرفض.

الرسائل إنجليزية بالتصميم

تطبيقك يملك الترجمة. ونصوص الأخطاء غير المعروفة القادمة من الخادم لا تتسرب أبداً إلى الرمز، فتفريعك عليه لن ينكسر حين يضيف الخادم رمزاً جديداً.