التعريف المختصر
الواجهة الخلفية هي منطق التطبيق وخدماته التي تعمل على الخادم، وتقدم للواجهة الأمامية ما تحتاجه عبر مسارات API. لا يراها الزائر، لكنه يعتمد عليها في كل حجز أو طلب أو تسجيل دخول.
شرح مبسط
في الواجهة الأمامية يضغط العميل «احجز». هذه الضغطة ترسل رسالة إلى الخلفية تقول: «هذا الاسم وهذا الجوال يريد هذا الموعد». الخلفية تتحقق: هل الموعد متاح؟ هل رقم الجوال صحيح؟ ثم تحفظ الحجز في قاعدة البيانات وترد: «تم» أو «الموعد محجوز». الواجهة الأمامية تعرض الرد فقط.
app.post('/api/bookings', async (req, res) => {
const { name, phone, slot } = req.body;
if (!/^05\d{8}$/.test(phone)) return res.status(400).json({ error: 'رقم جوال غير صحيح' });
const taken = await db.get('SELECT 1 FROM bookings WHERE slot = ?', slot);
if (taken) return res.status(409).json({ error: 'الموعد محجوز' });
await db.run('INSERT INTO bookings (name, phone, slot) VALUES (?, ?, ?)', name, phone, slot);
res.json({ ok: true });
});لاحظ أن التحقق من رقم الجوال ومنع التكرار يحدثان في الخلفية، لا في المتصفح. لأن أي قاعدة في الواجهة الأمامية فقط يمكن لشخص متمرس أن يتجاوزها. ومتى يحتاج موقعك خلفية؟
- حين يحفظ بيانات: حجوزات، طلبات، تسجيلات، رسائل.
- حين يحتاج تسجيل دخول وصلاحيات.
- حين يتصل بخدمة بمفتاح سري، مثل بوابة دفع.
- أما صفحة تعريفية ثابتة بلا نماذج تُحفظ، فلا تحتاج خلفية.
مثال من السوق السعودي
مغسلة ملابس في الدمام تقدم خدمة استلام وتوصيل. العميل يطلب الاستلام من الموقع، فتقوم الخلفية بعدة أعمال لا يراها: تحسب السعر حسب عدد القطع ونوع الخدمة، تتأكد أن الحي ضمن نطاق التوصيل، تحفظ الطلب، ترسل إشعارًا للسائق، وتغيّر حالة الطلب من «جديد» إلى «تم الاستلام» ثم «جاهز». كل هذا منطق خلفي، والواجهة الأمامية تعرض الحالة فقط.
ومن هنا تفهم لماذا يكون الخطأ في الخلفية أخطر من الخطأ في الواجهة. إذا كان لون الزر خاطئًا، يلاحظه الجميع ويُصلح في دقيقة. أما إذا كان حساب السعر يتجاهل قطعة واحدة في كل طلب، فقد تخسر المغسلة مبالغ صغيرة يوميًا دون أن ينتبه أحد لأسابيع. لهذا اطلب دائمًا تجربة حسابات حقيقية بعد أي تعديل على منطق الأسعار، مثل طلب فيه خمسة أثواب وبطانيتان، وقارن الناتج بما تحسبه أنت يدويًا.
كيف يظهر في أوترا
في أوترا تستطيع بناء واجهة خلفية كاملة بمسارات API وقاعدة بيانات، والبيئة تشغّل الخادم وقاعدة البيانات معًا دون إعداد منك، مثلًا خوادم Node.js و Express. وتربط الخدمات الخارجية بإضافة مفتاحها في «البيانات السرية» ثم طلب الربط، فيبقى المفتاح محميًا خارج المحادثة والكود. وحين تنشر، تعمل التطبيقات التي لها خادم وقاعدة بيانات على موارد استضافة باقتك. ولمن يريد التحكم، الترمينال متاح لتعديل الملفات وتثبيت الحزم.
مصطلحات ذات صلة
- الواجهة الأمامية: ما يراه الزائر ويرسل منه الطلبات.
- API: المسارات التي تفتحها الخلفية للواجهة.
- قاعدة البيانات: حيث تحفظ الخلفية كل شيء.
- الأسرار: مفاتيح الخدمات التي تستخدمها الخلفية.