العودة إلى المدونة
تطوير يوليو 08, 2026 2 دقيقة قراءة

كيف تبني REST API باستخدام Laravel: دليل تعليمي شامل

في CodeStan، نؤمن ببناء أسس رقمية قوية وقابلة للتوسع. وفي عالمنا المترابط اليوم، هذا يعني غالباً واجهات برمجية التطبيقات (APIs). من تطبيقات الجوال في الرياض إلى تطبيقات الصفحة الواحدة.

كيف تبني REST API باستخدام Laravel: دليل تعليمي شامل
مشاركة

في CodeStan، نؤمن ببناء أسس رقمية قوية وقابلة للتوسع. وفي عالمنا المترابط اليوم، هذا يعني غالباً واجهات برمجية التطبيقات (APIs). من تطبيقات الجوال في الرياض إلى تطبيقات الصفحة الواحدة في دبي، APIs هي الأوردة التي تُنقل البيانات بين الأنظمة.

هذا الدليل يعلمك كيفية بناء REST API احترافي باستخدام Laravel. ليس نظرية مجردة. أمثلة واقعية يمكنك متابعتها وبناء شيء حقيقي.

ما سنبنيه

API لإدارة المنتجات. يتضمن:

  • إنشاء منتج (POST /api/products)
  • قراءة المنتجات (GET /api/products)
  • تحديث منتج (PUT /api/products/{id})
  • حذف منتج (DELETE /api/products/{id})
  • البحث والتصفية
  • التوثيق

المتطلبات الأساسية

قبل البدء:

  • PHP 8.2+ مثبت على جهازك
  • Composer
  • MySQL أو SQLite
  • معرفة أساسية بـ Laravel

الخطوة الأولى: إعداد المشروع

أنشئ مشروع Laravel جديد:

laravel new product-api
cd product-api

أنشئ قاعدة البيانات وحدث ملف .env:

DB_DATABASE=product_api
DB_USERNAME=root
DB_PASSWORD=your_password

الخطوة الثانية: إنشاء النموذج والهجرة

أنشئ نموذج Product مع الهجرة:

php artisan make:model Product -m

في ملف الهجرة:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->text('description')->nullable();
        $table->decimal('price', 10, 2);
        $table->integer('stock')->default(0);
        $table->timestamps();
    });
}

شغل الهجرة:

php artisan migrate

الخطوة الثالثة: إنشاء المتحكم

أنشئ متحكم API:

php artisan make:controller Api/ProductController --api

في ProductController:

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Models\Product;
use Illuminate\Http\Request;

class ProductController extends Controller
{
    public function index()
    {
        return Product::all();
    }

    public function store(Request $request)
    {
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'description' => 'nullable|string',
            'price' => 'required|numeric|min:0',
            'stock' => 'required|integer|min:0',
        ]);

        return Product::create($validated);
    }

    public function show(Product $product)
    {
        return $product;
    }

    public function update(Request $request, Product $product)
    {
        $validated = $request->validate([
            'name' => 'sometimes|string|max:255',
            'description' => 'nullable|string',
            'price' => 'sometimes|numeric|min:0',
            'stock' => 'sometimes|integer|min:0',
        ]);

        $product->update($validated);
        return $product;
    }

    public function destroy(Product $product)
    {
        $product->delete();
        return response()->noContent();
    }
}

الخطوة الرابعة: إعداد المسارات

في routes/api.php:

use App\Http\Controllers\Api\ProductController;

Route::apiResource('products', ProductController::class);

الخطوة الخامسة: الاختبار

شغل الخادم:

php artisan serve

اختبر API باستخدام Postman أو curl:

curl -X POST http://localhost:8000/api/products \
  -H "Content-Type: application/json" \
  -d '{"name":"iPhone 16","price":3999,"stock":50}'

الأخطاء الشائعة وكيفية تجنبها

عدم التحقق من المدخلات: دائماً استخدم التحقق. APIs مفتوحة للعالم. لا تثق بأي مدخل.

غياب التوثيق: استخدم Scribe أو Swagger لتوليد توثيق تلقائي. APIs بدون توثيق صعبة الصيانة.

إرجاع بيانات حساسة: لا تُرجع كلمات مرور أو مفاتيح API في الردود.

نصيحة احترافية

استخدم Postman Collection لتوثيق واختبار API. شاركها مع فريقك. التوثيق الحي أفضل من المستندات الثابتة.

الخطوات التالية

بعد بناء API الأساسي:

  • أضف المصادقة باستخدام Sanctum
  • أضف التصفية والبحث والترتيب
  • أضف التخزين المؤقت للاستعلامات المتكررة
  • أضف Rate Limiting لحماية API
  • أضف الاختبارات الآلية

API جيد ليس الذي يعمل فقط. هو الذي يعمل، يتوسع، ويُفهم.

— فريق CodeStan

إذا كنت تبني API لمشروعك وتريد مراجعة احترافية، تواصل معنا. نراجع الكود ونُقدم توصيات بناءً على أفضل الممارسات.

نقاش

لا تعليقات بعد. كن الأول.

اترك تعليقاً

تحتاج مساعدة في مشروعك؟

نُحوّل الأفكار إلى منتجات تُؤدي.