طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 241 · تحليل وتصميم برمجيات الويب
تقييم الدرس 10

مخطط التسلسل وتصميم واجهة API

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 10: مخطط التسلسل وتصميم واجهة API. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) ما الذي يرتب الرسائل في مخطط التسلسل؟
2) كل سهم من الواجهة إلى الخادم في مخطط التسلسل يصبح غالبًا:
3) حقل مطلوب ناقص في جسم الطلب. الرمز المناسب:
4) لماذا توصف واجهة API قبل البرمجة؟
5) في مخطط الحالات، ماذا يمثل السهم؟

2السؤال الثاني: صح أم خطأ

1) يكفي أن يرسم مخطط التسلسل المسار الناجح فقط.
الصواب: خطأ
2) participant في Mermaid تعرّف مكوّنًا في مخطط التسلسل.
الصواب: صح
3) رمز 201 يعني أن المورد أُنشئ.
الصواب: صح
4) في مخطط الحالات، الانتقال الذي لا سهم له مسموح.
الصواب: خطأ
5) بوابة الدفع يمكن أن تكون مشاركًا في مخطط التسلسل.
الصواب: صح

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) في مخطط التسلسل، الرد يُرسم بالسهم .
الإجابة: -->>
2) الإطار الذي يرسم مسارات بديلة هو .
الإجابة: alt
3) المخطط الذي يحدد مراحل الطلب والانتقالات بينها هو مخطط .
الإجابة: الحالات

4السؤال الرابع: أسئلة عملية

1) ماذا يفعل الخادم إن فشل الدفع حسب المخطط؟
بوابة الدفعقاعدة البياناتالخادمالواجهةalt[الدفع ناجح][الدفع فشل]المتدربيضغط «سجّل»POST /api/enrollmentsهل توجد مقاعد؟3 مقاعدإنشاء تسجيل (pending)201 + رقم التسجيلتحويل لصفحة الدفعإشعار نجاح الدفعالحالة = paidإشعار فشلإلغاء الحجز
2) من أي حالة يمكن الوصول إلى paid؟

إنشاء الطلب

اعتماد الموظفة

رفض مع السبب

نجاح الدفع

انتهاء مهلة الدفع

انتهاء الدورة

pending

approved

rejected

paid

cancelled

completed

3) أرسلنا طلبًا ينقصه traineeId. ما جسم الاستجابة؟ POST /api/enrollments

const express = require('express');const app = express();app.use(express.json()); const courses = [{ id: 1, title: 'تصميم الويب', capacity: 2 }];const enrollments = []; app.post('/api/enrollments', (req, res) => {  const { traineeId, courseId } = req.body;  if (!traineeId || !courseId)    return res.status(400).json({ error: 'traineeId و courseId مطلوبان' });  const course = courses.find(c => c.id === courseId);  if (!course) return res.status(404).json({ error: 'الدورة غير موجودة' });  const taken = enrollments.filter(e => e.courseId === courseId).length;  if (taken >= course.capacity)    return res.status(409).json({ error: 'الدورة مكتملة' });  const e = { id: enrollments.length + 1, traineeId, courseId, status: 'pending' };  enrollments.push(e);  res.status(201).json(e);}); app.listen(3000);
الاستجابة الصحيحة:
{"error":"traineeId و courseId مطلوبان"}
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس