اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله وبركاته.

أريد الإجابة عن سؤال منطقياً فقط..

لنفترض ان عندي مشروع متجر الكتروني عملت عليه بlaravel وتم بناء المشروع وبرمجته.. ولنفترض أنني أريد عمل api له لمطورين الهاتف فهل أبني الapi في نفس مجلد المشروع "أي اعتبارها من ضمن المشروع" أم أبنيها في مجلد منفصل "أي إعتبارها مشروع منفصل" ؟ 

Recommended Posts

  • 1
نشر

يمكنك أن تبني المشروع بالكامل في نفس مجلد لأن Laravel يأتي مجهزًا للتعامل مع الـ API، ويمكنك أن تقوم بعمل RESTful API من خلال عمل Routes في ملف routes/api.php بنفس الطريقة العادية كم اتقوم بها في ملف routes/web.php ويفضل أن تفصل المتحكمات controllers في مجلد داخلي باسم api ليكون في المسار التاليعلى سبيل المثال: 

/app/Http/Controllers/Api/UsersController.php

ويمكنك تقسم الـ API إلى إصدار (V1, V2 .. إلخ) حتى إذا أردت أن تقوم بعمل تحديثات في المستقبل، تقوم بعمل إصدار جديد لذلك قم بوضع المتحكمات في مجلد باسم الإصدار أيضًا كالتالي:

/app/Http/Controllers/Api/V1/UsersController.php

ويمكنك أن تستخدم التابع prefix لإستخدام الإصدار في مسارات routes الـ API أيضًا كالتالي:

Route::prefix('v1')->group(function () {
    Route::get('/users', [UsersController::class, 'index']);	// http://localhost/api/v1/users
    Route::get('/posts', [PostsController::class, 'index']);	// http://localhost/api/v1/posts
});

 

  • 1
نشر

يوجد طرق عديدة أخي الكريم فى هذا الموضوع أنا شخصيا فى عملي نقوم بفصل الأدمن عن ال Api بحيث الأدمن بانل تكون مشروع Laravel خاص بها وال Api تكون على مشروع Lumen وليس لارافيل لان ال Lumen معمولة لأغراض ال Api ويتم وضع ال Api على نفس سيرفر الأدمن ولكن فى الأغلب يتم وضعها على سيرفر خارجي عن الأدمن ودومين مختلف تماماً

ولكن مشروع الأدمن وال Api يتصلان بنفس قاعدة البيانات .. ولتلك الطريقة سبب منطقي لانه إذا حدث فى يوم من الأيام ضغط على مشروع ال Api وكان يوجد إحتياج أننا نقوم بزيادة سيرفر لل APi فى تلك الحاله سنقوم بعمل شئ يسمى Load Balancer

بحيث يكون عندنا نفس المشروع على أكثر من سيرفر ويوجد سيرفر رئيسي عليه Load Balancer يقوم بتوزيع الريكوست على السيرفرات بطريقة متوازية فيما بينهم بحيث لا يسبب ضغط على أى سيرفر من السيرفرات 

  • 0
نشر

نعم تكون ملفات ال API موجودة في نفس مجلدات المشروع، ولكن منفصلة بملفاتها الخاصة مثلا نضع المتحكمات الخاصة بها في مجلد منفصل

ِApp/Http/controllers/api/controller1.php
ِApp/Http/controllers/api/controller2.php
ِ......................  ِ/controller3.php
......................  ِ/controller4.php

و نضع Routes أيضا في ملف منفضل:

Rotes/api.php

نضع فيه مسارات المتحكمات الخاصة.

إن متحكمات API تصل لنفس موادر المتحكمات العادية و الملفات الأخرى فلا نضعها في مكان آخر ليسهل الربط بينها مع المشروع.

و مع الصلاحيات سيكون كل شيئ آمنا فلا داع للقلق.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...