Laravel ile API Geliştirmenin Temelleri
Laravel ile API geliştirme sürecine başlamadan önce, Laravel kurulumunun yapılmış olması gerektiğini unutma. Eğer Laravel’i henüz kurmadıysan, terminale şu komutları yazıp hemen kurulumu tamamlayabilirsin:
composer create-project --prefer-dist laravel/laravel api-app
Bu komut, sana "api-app" adında bir proje oluşturacak. Şimdi her şey hazır, hadi API geliştirmeye başlayalım!
Adım 1: API Route’larını Tanımlamak
İlk API route’umuzu oluşturuyoruz:
use Illuminate\Support\Facades\Route;
Route::get('/users', function () {
return response()->json([
'users' => [
['name' => 'John Doe', 'email' => 'john@example.com'],
['name' => 'Jane Doe', 'email' => 'jane@example.com']
]
]);
});
Bu, basit bir GET isteği yaparak iki kullanıcıyı döndüren bir API endpoint'idir. Bu kadar basit! Eğer `http://localhost:8000/api/users` adresine gidersen, JSON formatında kullanıcı bilgilerini görebileceksin.
Adım 2: Controller Kullanmak
Hadi, bir controller oluşturalım:
php artisan make:controller UserController
Bu komut, `app/Http/Controllers` klasöründe `UserController.php` dosyasını oluşturur. Şimdi, bu controller'ı route'larımızla bağlayalım:
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
Şimdi controller’da `index` metodunu tanımlayalım:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function index()
{
return response()->json([
'users' => [
['name' => 'John Doe', 'email' => 'john@example.com'],
['name' => 'Jane Doe', 'email' => 'jane@example.com']
]
]);
}
}
Bu, API route’unu controller’a bağlamamıza yardımcı oldu. Şimdi, `http://localhost:8000/api/users` adresine gittiğinde aynı veriyi alacaksın, ancak artık controller üzerinden yönetiliyorsun. Kod çok daha düzenli oldu!
Adım 3: Veri Tabanı Bağlantısı Kurmak
Öncelikle, veritabanı bağlantısını yapılandıralım. `.env` dosyasına gidip şu ayarları yap:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=api_db
DB_USERNAME=root
DB_PASSWORD=
Ardından, bir `User` modelini oluşturuyoruz:
php artisan make:model User
Ve bu modeli controller’da kullanarak veritabanındaki verileri çekelim:
use App\Models\User;
class UserController extends Controller
{
public function index()
{
$users = User::all(); // Veritabanındaki tüm kullanıcıları al
return response()->json([
'users' => $users
]);
}
}
Bu kadar! Artık veritabanındaki kullanıcılar API aracılığıyla dönecek. `http://localhost:8000/api/users` adresinde veritabanındaki verileri görmelisin.
Adım 4: CRUD İşlemleri
Öncelikle, route'umuzu tanımlayalım:
Route::post('/users', [UserController::class, 'store']);
Şimdi controller’a `store` metodunu ekleyelim:
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
$request->validate([
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
]);
return response()->json($user, 201);
}
}
Bu kod parçası, kullanıcı adı ve email’i alıp veritabanına kaydedecek. Şimdi, bir POST isteği gönderdiğinde yeni kullanıcı oluşturulmuş olacak.
Adım 5: API'yi Test Etmek
Sonuç
Bundan sonra, API'ni daha da geliştirebilir, autentikasyon (kimlik doğrulama) ekleyebilir ve veri filtreleme gibi özellikler ekleyebilirsin. Laravel’in sunduğu zengin özellikler ile projelerini çok daha hızlı geliştirebilirsin!