بالوضع الإفتراضي، عند تثبيت مشروع لارافيل لا يأتي مسبقا للتعامل مع api، وحتى نتمكن من ذلك يجب علينا إستخدام الأمر
php artisan install:api
بعد تنفيذ الأمر يتم إضافة الملفات التالية:
- إضافة الملف sanctum.php .
- إضافة الملف api.php في المجلد routes.
- إضافة migration بإسم في الملجلد database.
- إضافة api: __DIR__.'/../routes/api.php', في الملف bootstrap/app.php وهو المخصص للتعامل مع routes.
في هذا الدرس سوف نتعرف على كيفية إستخدام وتخصيص api route في laravel 11.
ماذا لو أردنا إعاده تسمية الملف من api.php إلى api2.php
هنا بكل بساطه يجب تسجيل هذا الملف في bootstrap/app.php وإستبدال api.php بـ api2.php
->withRouting( web: __DIR__.'/../routes/web.php', //api: __DIR__.'/../routes/api.php', api: __DIR__.'/../routes/api.php2', commands: __DIR__.'/../routes/console.php', health: '/up', )
ماذا لو أردنا إستخدام api/v1
هنا نحتاج إضافة apiPrefix : 'api/v1/'
->withRouting( web: __DIR__.'/../routes/web.php', api: __DIR__.'/../routes/api.php', apiPrefix: 'api/v1/', commands: __DIR__.'/../routes/console.php', health: '/up', )
وكذلك لو إحتجنا أن يكون route/v2
هنا نعدل apiPrefix
apiPrefix: 'api/v1/',
إضافة Versioning للـ api
مثلا لو أردنا إن يكون لدينا api/v1 وكذلك api/v2
هنا بالإضافة إلى apiPrefix يمكن لنا إستخدام الدالة then
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
apiPrefix: 'api/v1/',
commands: __DIR__.'/../routes/console.php',
health: '/up',
then: function() {
Route::prefix('api/v2')
->middleware('api')
->group(base_path('routes/apiv1.php'));
}
)بذلك نكون قد قمنا بتسجيل api/v2 مع العلم أنه يجب إنشاء apiv2.php بداخل المجلد routes
ماذا لو أردنا إضافة api/v3
بكل بساطة نقوم بإضافة prefix أخر بداخل then
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
apiPrefix: 'api/v1/',
commands: __DIR__.'/../routes/console.php',
health: '/up',
then: function() {
Route::prefix('api/v2')
->middleware('api')
->group(base_path('routes/api/v2.php'));
Route::prefix('api/v2')
->middleware('api')
->group(base_path('routes/apiv2.php'));
}
)وكذلك إنشاء الملف apiv2.php