• 0

هل الAPI تكون بنفس مجلد المشروع الفعلي؟

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

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

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

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 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
});

 

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

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

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

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

تقوم بإنشاء مجلد وليكن اسمه Api في Controllers و تضع فيه جميع Controllers الخاصة ب api وفي ملف api.php في مجلد routes تضع مسارات api, الأمر يرجع لك. لا تتقيد بشيء يمكنك فعل ما تريد بما يناسبك.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

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

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

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

Rotes/api.php

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

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

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

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن