دلایل مختلفی ممکنه وجود داشته باشه که یک تیم توسعهدهنده تصمیم بگیره قابلیت 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