دلایل مختلفی ممکنه وجود داشته باشه که یک تیم توسعهدهنده تصمیم بگیره قابلیت API رو از یک پروژهی Laravel حذف کنه... مثلا:
- نیاز نداشتن به API و تمرکز روی توسعهی وبسایت
- کاهش پیچیدگی و تمیزکاری
- کاهش دردسرهای امنیتی
- بهبود مصرف منابع سرور
خلاصه اگه واقعاً API به کار نیاد، حذفش باعث سبکتر شدن پروژه، سادهتر شدن نگهداری و تمرکز بیشتر روی همون کار اصلی میشه.
برای حذف اصولی API و موارد مرتبط از یک پروژه Laravel، باید مراحل زیر رو انجام داد:
1- حذف فایل API از Route ها
مسیرهای API معمولاً در فایل routes/api.php تعریف میشن. این فایل رو باید پاک کنید.
routes/api.php
2- حذف Loader فایل api.php در RouteServiceProvider
مسیر:
app/Providers/RouteServiceProvider.php
کدها:
public function boot() { $this->routes(function () { // این قسمت رو حذف یا کامنت کنید // Route::middleware('api') // ->prefix('api') // ->group(base_path('routes/api.php')); Route::middleware('web') ->group(base_path('routes/web.php')); }); }
3- حذف middleware های مربوط به API در Kernel.php
مسیر:
app/Http/Kernel.php
کدها:
protected $middlewareGroups = [ 'web' => [ // Middlewareهای وب ], // این قسمت رو حذف یا کامنت کنید // 'api' => [ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, // 'throttle:api', // \Illuminate\Routing\Middleware\SubstituteBindings::class, // ], ];
4- درصورت وجود: پاک کردن کنترلرها و منابع API
مسیر:
app/Http/Controllers/API و app/Http/Resources
5- پاک کردن cache ها
دستور زیر رو بزنید تا cache ها پاکسازی بشن:
php artisan optimize:clear
6- حذف دستورات پکیج Sanctum
مسیر:
app\Models\User.php
کدها:
//use Laravel\Sanctum\HasApiTokens; final class User extends BaseUser { //use HasApiTokens;
اگر از این Trait در مسیرهای دیگه هم استفاده شده، حذفش کنید.
7- کانفیگ Path در CORS
مسیر:
config\cors.php
کدها:
'paths' => ['api/*', 'sanctum/csrf-cookie'], // -> 'paths' => [],
8- حذف فایل کانفیگ پکیج Sanctum و Passport
مسیر:
config\sanctum.php و config\passport.php
9- حذف کدهای Sanctum و Passport از داخل فایلهای tests
مسیر:
tests/unit/ و tests/feature/
10- حذف کدها و جدول personal_access_tokens
جدول personal_access_tokens رو از دیتابیس حذف کنید. همچنین:
مسیر:
routes\console.php
کدها:
//DB::table('personal_access_tokens')->truncate();
11- نهایتاً حذف پکیج laravel/sanctum و laravel/passport
دستور:
composer remove laravel/sanctum composer remove laravel/passport
و مجدد دستور زیر رو بزنید تا cache ها پاکسازی بشن:
php artisan optimize:clear