Files
bogazici-api/README.md
Bulut Kuru 380ebb283e cors update
2026-03-28 00:04:52 +03:00

3.3 KiB
Raw Blame History

Boğaziçi Denizcilik API

Boğaziçi Denizcilik kurumsal web sitesi ve yönetim paneli için geliştirilmiş REST API backend uygulamasıdır.

Teknoloji

  • PHP 8.4 / Laravel 12
  • MySQL (Eloquent ORM)
  • Laravel Sanctum — API token tabanlı kimlik doğrulama
  • Spatie Permission — Rol ve yetki yönetimi (RBAC)
  • Spatie ActivityLog — Model değişiklik takibi
  • L5-Swagger — OpenAPI/Swagger API dokümantasyonu
  • Pest 4 / PHPUnit 12 — Test
  • Laravel Pint — Kod formatlama
  • Docker + Apache — Konteyner tabanlı deployment
  • Drone CI — CI/CD pipeline

Mimari

Proje Repository + DTO + Action pattern'i kullanır:

app/
├── Actions/          # İş mantığı (Create, Update, Delete)
├── DTOs/             # Veri transfer nesneleri
├── Http/
│   ├── Controllers/
│   │   ├── Api/Admin/    # Yönetim paneli API (auth gerekli)
│   │   └── Api/V1/       # Public API v1
│   ├── Requests/         # Form doğrulama
│   └── Resources/        # API response dönüştürücüler
├── Models/           # Eloquent modeller
├── Repositories/     # Veri erişim katmanı (Contracts + Eloquent)
└── Concerns/         # Tekrar kullanılabilir trait'ler

API Yapısı

Public API (/api/v1)

Endpoint ıklama
GET /categories Kurs kategorileri
GET /courses Kurslar (filtreleme, arama, sayfalama)
GET /schedules Kurs programları
GET /announcements Duyurular
GET /hero-slides Anasayfa slider
GET /faqs Sıkça sorulan sorular
GET /menus/{location} Menüler
GET /pages/{slug} Statik sayfalar
GET /stories Başarı hikayeleri
GET /settings Site ayarları
GET /guide-cards Eğitim rehber kartları
GET /sitemap-data SEO sitemap verisi
POST /leads İletişim formu (rate limited)
POST /comments Yorum gönderimi (rate limited)

Admin API (/api/admin)

Sanctum token ile korunan yönetim endpointleri:

  • Kimlik doğrulama: login, logout, me
  • İçerik yönetimi: Kurslar, kategoriler, programlar, duyurular, sayfalar, slider, FAQ, hikayeler
  • Kullanıcı yönetimi: Kullanıcılar, roller, yetkiler
  • Sistem: Ayarlar, dosya yükleme, önizleme tokenları, önbellek temizleme

API dokümantasyonu: /api/documentation (Swagger UI)

Kurulum

# Bağımlılıkları yükle
composer install
npm install

# Ortam dosyasını hazırla
cp .env.example .env
php artisan key:generate

# Veritabanını oluştur ve seed et
php artisan migrate --seed

# Geliştirme sunucusu (Laravel Herd ile)
# Site otomatik olarak https://bogazici-api.test adresinde erişilebilir

Geliştirme

# Testleri çalıştır
composer test

# Belirli bir testi çalıştır
php artisan test --compact --filter=testName

# Kod formatlama
vendor/bin/pint --dirty

# API route listesi
php artisan route:list --path=api

Deployment

Drone CI ile otomatik deployment yapılır:

Branch Ortam Yol
test Test /opt/projects/bogazici/corporate-api/test/api
main Production /opt/projects/bogazici/corporate-api/prod/api

Deployment Docker container içinde çalışır ve scripts/deploy-test.sh / scripts/deploy-prod.sh scriptleri kullanılır.