1. Laravel'i Kurmak: Başlangıç Noktası
Laravel Kurulumu:
İlk olarak, terminal veya komut satırını açarak şu komutu çalıştırmalısınız:
composer create-project --prefer-dist laravel/laravel api-project
Bu komut, Laravel'in en son sürümünü indirip "api-project" adında bir proje oluşturacaktır.
Projeniz kurulduktan sonra, terminal üzerinden proje dizinine giderek uygulamanızı başlatabilirsiniz:
cd api-project
php artisan serve
Bu adım, Laravel'in web sunucusunu başlatır ve artık http://localhost:8000 adresinden uygulamanızı ziyaret edebilirsiniz.
2. API Yolu: RESTful Servisler
API Route’ları Tanımlama:
Laravel'de API route’ları, `routes/api.php` dosyasında tanımlanır. Bu dosya, tüm API isteklerini yönlendirir. Örneğin, bir “user” listesi almak istiyorsanız:
Route::get('/users', 'UserController@index');
Yukarıdaki kod, `/users` endpoint’ine gelen GET isteklerini `UserController`'ın `index` metoduna yönlendirecek.
3. Controller ve CRUD İşlemleri
Controller Oluşturma:
Terminal üzerinden şu komut ile bir controller oluşturabilirsiniz:
php artisan make:controller UserController
Bu komut, `app/Http/Controllers/UserController.php` dosyasını oluşturur. Şimdi, bu controller içerisinde CRUD işlemlerini yazabiliriz.
Index Metodu:
İlk olarak, kullanıcıları listeleyen bir metodu yazalım:
public function index()
{
$users = User::all();
return response()->json($users);
}
Store Metodu:
Yeni bir kullanıcı eklemek için ise şu kodu kullanabiliriz:
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'email' => 'required|email|unique:users',
]);
$user = User::create($validated);
return response()->json($user, 201);
}
Bu metot, gelen veriyi doğrular ve ardından yeni bir kullanıcı oluşturur.
4. API Authentikasyonu: Güvenlik
Sanctum’u kurmak oldukça basittir. İlk olarak:
composer require laravel/sanctum
Kurulumdan sonra, `Sanctum` paketini kullanabilmek için bazı ek adımlar vardır. Kullanıcı modelinizde şu trait’i eklemelisiniz:
use Laravel\Sanctum\HasApiTokens;
Daha sonra, `api.php` dosyasındaki route’lara koruma ekleyebilirsiniz:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Bu route, yalnızca geçerli bir API token’ı olan kullanıcılara erişim sağlar.
5. Hata Yönetimi ve Yanıt Formatları
Özel Hata Yanıtı:
Örneğin, bir kullanıcı bulunamazsa, şu şekilde özel bir hata yanıtı gönderebiliriz:
public function show($id)
{
$user = User::find($id);
if (!$user) {
return response()->json(['error' => 'Kullanıcı bulunamadı'], 404);
}
return response()->json($user);
}
6. API'yi Test Etmek
Testler için `tests/Feature` dizininde yeni bir test dosyası oluşturabilirsiniz:
php artisan make:test UserApiTest
Bu test dosyası içerisinde, API’nizin her endpoint'ini test edebilirsiniz. Örneğin, bir GET isteği için şu testi yazabilirsiniz:
public function test_user_can_see_all_users()
{
$response = $this->get('/api/users');
$response->assertStatus(200);
}