انتقل إلى محتوى الدرس
الدرس 49
دورة إطار العمل Laravel

بناء مسارات RESTful API ومتحكمات JSON في LaravelBuilding RESTful API Routes and JSON Controllers in Laravel

تفعيل مسارات الواجهات البرمجية بالأمر install:api وإنشاء متحكمات API وإرجاع استجابات JSON القياسية مع رموز حالة HTTP.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

يعتمد إطار Laravel 12 هيكلة رشيقة يتم فيها تفعيل مسارات الواجهات البرمجية عند الحاجة عبر أمر install:api في Artisan. يقوم هذا الأمر بإنشاء ملف routes/api.php وتسجيل البادئة /api تلقائياً داخل bootstrap/app.php مع تطبيق مجموعة البرمجيات الوسيطة عديمة الحالة.

  • المعمارية عديمة الحالة (Stateless Architecture): لا تحتفظ مسارات API بحالة الجلسة على الخادم أو ملفات تعريف CSRF بين الطلبات.
  • البادئة التلقائية (Automatic Prefixing): يُسبق كل مسار معرّف داخل ملف routes/api.php بالبادئة /api تلقائياً.
  • الربط في التمهيد (Bootstrap Wiring): يربط إعداد withRouting في ملف bootstrap/app.php ملف مسارات API بأنبوب البرمجيات الوسيطة.
مخطط معماري يوضح بناء مسارات RESTful API ومتحكمات JSON في Laravel في إطار العمل Laravel 12
PHP
// Terminal: php artisan install:api
// bootstrap/app.php
return Application::configure(basePath: __DIR__)
    ->withRouting(
        api: __DIR__.'/../routes/api.php',
    )->create();

عند بناء واجهات JSON البرمجية، لا نحتاج إلى دوال عرض النماذج المرئية مثل create و edit لأن تطبيق العميل يتولى رسم واجهته بنفسه. يتيح تمرير الخيار --api مع أمر make:controller توليد متحكم نظيف يضم الدوال الخمس المخصصة للبيانات فقط.

  • خمس دوال للبيانات (Five Data Actions): يولّد دوال index و store و show و update و destroy المخصصة لتبادل بيانات JSON.
  • استبعاد قوالب العرض (No HTML Views): يستثني دالتي create و edit ليبقى المتحكم مركزاً بالكامل على معالجة البيانات.
  • تنظيم نطاق الأسماء (Namespace Organization): توضع متحكمات الواجهة البرمجية عرفياً داخل المجلد الفرعي App\Http\Controllers\Api.
PHP
// php artisan make:controller Api/PostController --api
namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Models\Post;

class PostController extends Controller {}

بدلاً من كتابة خمسة مسارات منفصلة لكل مورد، تقوم دالة Route::apiResource بربط جميع أفعال HTTP وعناوين URI بمتحكم الواجهة البرمجية في سطر واحد. يمكنك أيضاً تسجيل عدة موارد برمجية دفعة واحدة عبر تمرير مصفوفة ترابطية إلى دالة Route::apiResources.

  • التسجيل بسطر واحد (Single-Line Registration): يربط أفعال GET و POST و PUT/PATCH و DELETE بالدوال الخمس القياسية في المتحكم.
  • ربط معاملات المسار (Route Parameter Binding): يولّد تلقائياً معامل المسار بصيغة المفرد مثل {post} لدعم الربط الضمني للنموذج.
  • التسجيل المجمّع (Batch Registration): تتيح دالة Route::apiResources تسجيل عدة متحكمات موارد بنظافة داخل ملف routes/api.php.
PHP
use App\Http\Controllers\Api\PostController;
use App\Http\Controllers\Api\CommentController;
use Illuminate\Support\Facades\Route;

Route::apiResource('posts', PostController::class);
Route::apiResources([
    'comments' => CommentController::class,
]);

تتواصل واجهات RESTful البرمجية بدقة عبر إقران البيانات المهيكلة بصيغة JSON مع رموز حالة HTTP المعبرة عن نتيجة العملية. تتيح دالة response->json إرجاع السجلات المنشأة حديثاً مع الرمز 201، أو تأكيد الحذف الفارغ عبر response->noContent بالرمز 204.

  • الرمز 200 للنجاح (HTTP 200 OK): الحالة الافتراضية عند إرجاع قائمة السجلات أو بيانات المورد بعد تحديثه.
  • الرمز 201 للإنشاء (HTTP 201 Created): يُرجع من دالة store فور حفظ سجل جديد بنجاح داخل قاعدة البيانات.
  • الرمز 204 بدون محتوى (HTTP 204 No Content): يُرجع من دالة destroy عند حذف السجل بنجاح دون الحاجة لجسم استجابة.
PHP
public function store(Request $request)
{
    $post = Post::create($request->only('title'));
    return response()->json($post, 201);
}
// In destroy(Post $post):
// $post->delete();
// return response()->noContent();

عندما يرسل عميل الواجهة البرمجية رأس الرسالة Accept: application/json، يحول Laravel أخطاء التحقق والاستثناءات تلقائياً إلى استجابة JSON مهيكلة بدلاً من إعادة التوجيه لصفحة ويب. تُرجع أخطاء التحقق رمز الحالة 422 مع مصفوفة تفصيلية برسائل الخطأ لكل حقل.

  • التفاوض عبر رأس الرسالة (Accept Header Negotiation): إرسال الرأس Accept: application/json يوجه معالج الاستثناءات لإرجاع الأخطاء بصيغة JSON.
  • استجابة التحقق 422 (HTTP 422 Validation Response): تُرجع رسالة عامة مع كائن errors مفهرس بأسماء الحقول التي فشل التحقق منها.
  • خطأ عدم العثور 404 (HTTP 404 Model Not Found): يُرجع الربط الضمني للنموذج استجابة JSON بالرمز 404 تلقائياً إذا لم يوجد السجل.
PHP
public function update(Request $request, Post $post)
{
    $data = $request->validate([
        'title' => ['required', 'string', 'max:120'],
    ]);
    $post->update($data);
    return response()->json($post, 200);
}

إن إتقان الربط بين أفعال HTTP وأنماط الروابط ودوال المتحكم ورموز الحالة يضمن توافق واجهتك البرمجية في Laravel مع المعايير الهندسية القياسية. راجع دورة حياة نقطة النهاية الكاملة للمورد البرمجي قبل الانتقال لتنسيق المخرجات عبر موارد Eloquent API.

وجه المقارنة الهندسيالأسلوب المتزامن أو التقليديمعيار Laravel 12 الحديث
تسجيل المسارات البرمجيةتعريف 5 مسارات منفصلة يدوياً لكل مورد في الملفتصريح موحد عبر Route::apiResource في ملف routes/api.php
توليد كلاس المتحكممتحكم ويب كامل يحتوي على دالتي create و edit غير المستخدمتيناستخدام الخيار --api لتوليد الدوال الخمس الخاصة ببيانات JSON
رموز حالة الإنشاء والحذفإرجاع الرمز العام 200 لجميع عمليات الإضافة والحذفتخصيص الرمز 201 للإنشاء والرمز 204 للحذف عبر noContent
مخرجات فشل التحققإعادة توجيه 302 لصفحة HTML عند حدوث خطأ في المدخلاتإرجاع استجابة JSON تلقائية بالرمز 422 عند إرسال رأس الرسالة Accept
PHP
// Inspect registered API routes:
// php artisan route:list --path=api

Route::prefix('v1')->group(function () {
    Route::apiResource('posts', PostController::class);
});
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «بناء مسارات RESTful API ومتحكمات JSON في Laravel» مفاهيم تفعيل مسارات API عديمة الحالة، وإنشاء متحكمات موارد API القياسية، وتسجيل مسارات apiResource الموحدة وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «تنسيق استجابات الواجهات البرمجية عبر Eloquent API Resources» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 API Controllers مسارات API
تفعيل مسارات الواجهات البرمجية بالأمر install:api وإنشاء متحكمات API وإرجاع استجابات JSON القياسية مع رموز حالة HTTP.
للمراجعة
02 Enabling Stateless API Routing تفعيل مسارات API عديمة الحالة
المفهوم الهندسي والتطبيق العملي المباشر لقسم تفعيل مسارات API عديمة الحالة في إطار العمل Laravel 12.
للمراجعة
03 Generating API Resource Controllers إنشاء متحكمات موارد API القياسية
المفهوم الهندسي والتطبيق العملي المباشر لقسم إنشاء متحكمات موارد API القياسية في إطار العمل Laravel 12.
للمراجعة
04 Registering API Resource Endpoints تسجيل مسارات apiResource الموحدة
المفهوم الهندسي والتطبيق العملي المباشر لقسم تسجيل مسارات apiResource الموحدة في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «تفعيل مسارات API عديمة الحالة» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «إنشاء متحكمات موارد API القياسية» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من تفعيل مسارات API عديمة الحالة في إطار العمل Laravel 12؟

يسهم تفعيل مسارات API عديمة الحالة في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «إنشاء متحكمات موارد API القياسية» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة تسجيل مسارات apiResource الموحدة بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تسجيل مسارات apiResource الموحدة.

04

لماذا يُعد تطبيق إرجاع استجابات JSON ورموز الحالة مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

لأنه يمنع الأخطاء البرمجية الخفية ويوحد سلوك التطبيق بين بيئتي التطوير والإنتاج.

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق التحقق من بيانات طلبات API في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في مرجع مسارات ومتحكمات RESTful API؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.