design

Laravel’de API Documentation: Swagger ile Otomatik Dokümantasyon

April 2, 2025

API geliştiriyorsunuz ama dokümantasyon yazmak mı sıkıcı geliyor? Swagger (OpenAPI) ile Laravel API’nizi otomatik olarak dokümante edebilirsiniz! Hem de gerçek zamanlı test imkanıyla! 🚀


Neden Swagger Kullanmalıyım? 🤔

✔️ Otomatik dokümantasyon – Kodunuzla birlikte güncellenir.

✔️ Test edilebilir API arayüzü – Postman’e gerek kalmadan deneme yapın.

✔️ Frontend ekip ile kolabore etme – API’nizi rahatça paylaşın.

✔️ Profesyonel görünüm – Clean ve interaktif bir dokümantasyon.


Adım 1: Swagger Paketini Kurma 🛠️

Laravel’de Swagger için en popüler paket:


composer require darkaonline/l5-swagger


Yayınlama (Publish):

php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"


Adım 2: API’nizi Dokümante Etme 📝

Swagger, PHP DocBlock yorumlarından dokümantasyon oluşturur.

Örnek Controller:

/**
 * @OA\Get(
 *     path="/api/users",
 *     summary="Tüm kullanıcıları listeler",
 *     tags={"Users"},
 *     @OA\Response(
 *         response=200,
 *         description="Kullanıcı listesi başarıyla döndürüldü"
 *     ),
 *     @OA\Response(
 *         response=401,
 *         description="Yetkisiz erişim"
 *     )
 * )
 */
public function index()
{
    return User::all();
}


Adım 3: Swagger UI’ı Görüntüleme 🌐

Dokümantasyonu otomatik oluşturup görüntülemek için:

php artisan l5-swagger:generate

Tarayıcıda açın:

🔗 http://your-app.test/api/documentation


Bonus: Kimlik Doğrulama (JWT/OAuth) Ekleme 🔒

Swagger’da token ile test yapabilmek için:

/**
 * @OA\SecurityScheme(
 *     type="http",
 *     scheme="bearer",
 *     securityScheme="bearerAuth",
 *     bearerFormat="JWT"
 * )
 */


Swagger ile Profesyonel API Dokümantasyonu 🎯

Artık API’nizin canlı dokümantasyonu var! 🎉

✔️ Frontend geliştiriciler mutlu

✔️ Test süreçleri hızlandı

✔️ Dokümantasyon güncelleme derdi yok!

Siz Swagger kullanıyor musunuz? Yorumlarda deneyimlerinizi paylaşın! 👇💬

Bir sonraki yazımız: 🚀 [Laravel’de Caching Strategies: Redis ve Memcached] – Uygulamanızı turbo hızına çıkarın!**

#Laravel #Swagger #API #OpenAPI #WebDevelopment 🚀

3 + 2 =