POST/public/user/login/credentialتسجيل الدخولPOST/shared/user/refreshتدوير الرموزGET/shared/user/profileالمستخدم الحاليGET/user/learning/pathsالمسارات المنشورةGET/public/certificate-verify/:codeالتحقق من شهادة
✓كل شاشات التطبيق، ونقاط النهاية نفسها
ما يقدر عليه التطبيق تقدر عليه الواجهة
KEYx-api-keyمفتاح واحد وسرّ واحديحمل كل طلب ترويسة x-api-key، وتضيف المسارات المحمية رمز Bearer.
200 OKغلاف واحدرمز الحالة والرسالة والبيانات الوصفية والبيانات في كل استجابة.
org.fkra.aiنطاق فرعي لكل مؤسسةلكل مؤسسة نطاق فرعي خاص بها، وتُقرأ الأدوار مع كل طلب.
عENالعربية والإنجليزيةتعود الرسائل باللغة التي تطلبها.
ثلاثة طلبات
ثلاثة طلبات، من تسجيل الدخول إلى المحتوى
سجّل الدخول، واقرأ بيانات المستخدم الحالي، ثم اعرض مسارات التعلّم.
أرسل البريد الإلكتروني وكلمة المرور، فتحصل على رمز وصول ورمز تحديث. ويتطلب الطلب أيضًا رمز CAPTCHA محلولًا. أما الحسابات التي فعّلت التحقق بخطوتين فتتلقى طلب تحقق بدل الرموز.
تحمل الطلبات بعد تسجيل الدخول بيانات اعتماد اثنتين: مفتاح API يعرّف تطبيقك ويُرسل مع كل طلب، ورمز الوصول يعرّف المستخدم ويُرسل مع كل نقطة نهاية تتطلب تسجيل الدخول.
accessTokenرمز JWT موقّع بخوارزمية ES256. أرسله في ترويسة Authorization بصيغة Bearer، ويحدد expiresIn مدة صلاحيته بالثواني.refreshTokenرمز JWT موقّع بخوارزمية ES512، ولا تقبله إلا نقطة نهاية التحديث. كل تحديث يستبدل الرمزين معًا، وتحتفظ الجلسة بموعد انتهائها المحدد عند تسجيل الدخول.
تنبيهلا يظهر السرّ إلا مرة واحدة عند إنشاء المشرف للمفتاح. احفظه على خادمك، وأعد تعيين المفتاح من /admin/system/api-keys.
كل مؤسسة مستأجر مستقل على نطاقها الفرعي. وتتحقق نقاط النهاية المحمية من دور المستخدم، ثم من صلاحية تتكوّن من موضوع وإجراء، ويُقرأ الاثنان من جديد مع كل طلب.
المستأجرacme-academy.fkra.ai019f6a2e-…
الصلاحية
learningModule · publishنشر الوحدات✓✓×
apiKey · createإنشاء مفاتيح API وإعادة تعيينها✓✓×
assessment · updateبدء التقييمات والإجابة عنها وتسليمها✓✓✓
يُخزَّن الأعضاء والمحتوى والنشاط في acme-academy تحت معرّف مؤسستها./admin/system/roles · مباشر
كل شاشة تصدر بالعربية والإنجليزية بتخطيط من اليمين إلى اليسار: المحتوى ولوحات المتابعة والشهادات.
أرسل x-custom-lang: ar فتصلك الرسالة بالعربية، ويُضبط metadata.language على القيمة نفسها. أما نقاط نهاية المحتوى التعليمي فتقرأ Accept-Language وتذكر اللغة التي قدّمت بها المحتوى، مع مؤشر عند الرجوع إلى لغة بديلة.
تحمل كل استجابة رمز حالة رقميًا، ورسالة بلغة المستدعي، وبيانات وصفية عن الطلب، ثم البيانات نفسها. وتضيف القوائم المرقّمة حالة الترقيم إلى البيانات الوصفية.
تصل الأخطاء في الغلاف نفسه. تبيّن حالة HTTP نوع الخطأ، ويبيّن statusCode في المتن رمز فكرة للسبب بدقة. وتضيف أخطاء التحقق مصفوفة errors فيها عنصر لكل حقل.
4015100 · 5102مفتاح API مفقود أو غير سليم أو منتهي الصلاحية، أو سرّه غير مطابق.
4015120 · 5041رمز الوصول مفقود أو منتهي الصلاحية، أو أُلغيت جلسته.
4035101لا يوجد مفتاح API نشط مطابق.
4035063 · 5180دور المستخدم أو صلاحياته لا تشمل نقطة النهاية هذه.
4036104لم يوافق المستخدم على شروط الخدمة وسياسة الخصوصية الحالية.
4225030لم يجتز متن الطلب أو معاملات الاستعلام التحقق.
429429طلبات كثيرة من هذا العميل. انتظر المدة المحددة في Retry-After.
5035000تعذّر التحقق من الرمز حاليًا. أعد إرسال الطلب.
خطأ تحقق
HTTP/1.1 422 Unprocessable Entity{"statusCode":5030,"message":"There are validation errors.","metadata": { "language":"en", "version":"1", … },"errors": [ {"key":"isNotEmpty","property":"password","message":"password cannot be empty." } ]}
الحدود100 طلب كل 10 ثوانٍ، تُحسب لكل عنوان عميل لا لكل مفتاح. وبعد تجاوزها تردّ الواجهة بالحالة 429 مع ترويسة Retry-After بالثواني. وللتحقق من الشهادات حدّ مستقل قدره 60 طلبًا في الدقيقة.
سجل التدقيق
كل عملية كتابة تترك أثرًا.
تُسجَّل عمليات الدخول وتعديلات المحتوى وتغييرات الأدوار ومفاتيح API والشهادات الصادرة، مع المستخدم والإجراء وعنوان IP والجهاز. وتُسجَّل المحاولات الفاشلة أيضًا، ويستطيع المشرف تصدير أحداث الأدوار بصيغة CSV.
التحليلاتالتفاعل والجاهزية والإكمال، لحظيًا لكل فريقالإشعاراتالإنجازات والشهادات تصل لحظة استحقاقهااستكشفواجهة عرض لكل ما تعلّمه مؤسستكالمجتمعاتمجموعات ممارسة وفعاليات واستطلاعات ونقاشات على الوحداتالتلعيبنقاط وشارات وسلاسل أيام وشهادات قابلة للتحققالخط الزمني للوسائطفصول وإشارات وعلامات وملاحظات على كل فيديومسارات التعلّممراحل ومتطلبات ونواتج، مرتبة حسب الصعوبةالتقييماتمعالج تأليف وجلسات موقوتة وتصحيح على الخادم
أسئلة
ما يسأل عنه المهندسون أولًا.
كيف أحصل على مفتاح API؟
ينشئ المشرف المفاتيح ويعيد تعيينها من لوحة الإدارة، ضمن «النظام» ثم «مفاتيح API». وإن لم تكن مؤسستك مهيّأة بعد فتحدّث إلينا أولًا ونرشدك خطوة بخطوة.
ماذا يحتاج كل طلب؟
المفتاح وسرّه في ترويسة x-api-key مفصولين بنقطتين. وتضيف المسارات المحمية رمز الوصول في ترويسة Bearer. أما الدخول والتسجيل والاستعادة فتحتاج أيضًا إلى x-captcha-token محلول.
كيف أتصفّح قائمة صفحةً صفحة؟
تقبل القوائم perPage وcursor وorderBy، وتحمل البيانات الوصفية في الاستجابة حالة الترقيم للطلب التالي.
ماذا يحدث عند بلوغ حدّ الطلبات؟
تردّ الواجهة بالرمز 429 وترويسة Retry-After بالثواني. وتردّ أخطاء التحقق بالرمز 422 ومصفوفة errors فيها إدخال لكل حقل.
كيف ترتبط المؤسسات بالواجهة؟
لكل مؤسسة نطاق فرعي خاص بها. ويُخزَّن الأعضاء والمحتوى والنشاط تحت معرّف المؤسسة، وتُقرأ الأدوار والصلاحيات من جديد مع كل طلب.
هل تستطيع الواجهة الرد بالعربية؟
نعم. أرسل x-custom-lang: ar فتعود الرسائل بالعربية. وتقرأ مسارات محتوى المتعلّم ترويسة Accept-Language وتذكر اللغة التي قدّمت بها.
اربط خدمتك بالواجهة.
أخبرنا بما تبنيه. سنرشدك في المفاتيح والأدوار ونطاق مؤسستك.