Laravel ile RESTful API Oluşturma ve JWT Authentication
Laravel, sadece web uygulamaları için değil, RESTful API geliştirmek için de mükemmel bir altyapı sunuyor. 2025’te mobil uygulamalar ve frontend framework’leri (React, Vue, Angular) ile veri alışverişi yapmak için RESTful API’ler kritik önemde. Bu yazıda, Laravel ile bir API oluşturmayı, JWT authentication kullanarak güvenliği sağlamayı ve best practice’leri adım adım göstereceğiz.
1. Laravel Projesi Oluşturma ve Gerekli Paketler
Öncelikle Laravel projenizi oluşturun:
composer create-project laravel/laravel api-proje
JWT authentication için tymon/jwt-auth
paketini yükleyin:
composer require tymon/jwt-auth
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan jwt:secret
Bu adım, JWT token üretimi ve doğrulaması için gerekli temel yapılandırmayı sağlar.
2. Kullanıcı Modeli ve Migration
API kullanıcıları için User
modeli zaten Laravel ile geliyor. Ancak API odaklı projelerde email ve password doğrulamasını hazırlamak önemli. Migration dosyasında gerekli alanları ekleyin ve veritabanını migrate edin.
php artisan migrate
3. Auth Controller ve Register/Login İşlemleri
Bir AuthController
oluşturun ve register ile login fonksiyonlarını yazın.
class AuthController extends Controller {
public function register(Request $request) {
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password)
]);
$token = JWTAuth::fromUser($user);
return response()->json(compact('user', 'token'));
}
public function login(Request $request) {
$credentials = $request->only('email', 'password');
if (!$token = JWTAuth::attempt($credentials)) {
return response()->json(['error' => 'Invalid credentials'], 401);
}
return response()->json(compact('token'));
}
}
4. Route Yapısı
API route’ları routes/api.php
dosyasında tanımlanır:
Route::post('register', [AuthController::class, 'register']);
Route::post('login', [AuthController::class, 'login']);
Route::middleware('auth:api')->get('user', function(Request $request) {
return $request->user();
});
auth:api
middleware, API endpoint’lerine yalnızca doğrulanmış kullanıcıların erişmesini sağlar.
5. API Kaynakları ve Response Formatı
Laravel’de Resource
sınıfları kullanarak JSON formatını standartlaştırabilirsiniz.
php artisan make:resource UserResource
UserResource
ile API response’larını temiz ve anlaşılır hâle getirebilirsiniz.
6. Best Practice ve Güvenlik İpuçları
-
Token expiration süresini kısa tutun ve refresh mekanizması ekleyin.
-
Sensitive data’yı API response’larında göndermeyin (password, secret keys).
-
Rate limiting kullanarak brute force saldırılarına karşı koruma sağlayın.
-
Validation ve Exception handling ile kullanıcı deneyimini güvenli ve düzgün hâle getirin.
7. Test ve Postman ile Doğrulama
API endpoint’lerini Postman veya Insomnia ile test edin. Register ve login sonrası dönen JWT token’ı kullanarak protected route’lara erişim sağlayın.
Laravel ile RESTful API geliştirmek hem hızlı hem güvenli bir şekilde yapılabilir. JWT authentication, kullanıcı verilerini korurken modern frontend uygulamalarıyla sorunsuz entegrasyon sağlar. Bu adımlar ve best practice’ler ile güçlü, ölçeklenebilir ve güvenli bir API oluşturabilirsiniz.