Laravel tabanlı, tam dockerize edilmiş task management API sistemi. Redis queue, MySQL veritabanı ve Swagger dokümantasyonu ile kurumsal seviye çözüm.
# Projeyi klonla
git clone <repository-url>
cd task-management-api
# Tek komutla başlat
docker compose up -d --build
Proje http://localhost:8000 adresinde hazır.
- API Ana URL: http://localhost:8000
- API Dokümantasyonu: http://localhost:8000/api/documentation
- Sağlık Kontrolü: http://localhost:8000/health
Otomatik oluşturulan API dokümantasyonu:
- URL: http://localhost:8000/api/documentation
- Format: OpenAPI 3.0
- Özellikler: İnteraktif API test, şema doğrulama, örnekler
Proje kök dizininde postman-collection.json
dosyası bulunur:
# Postman'e içe aktar
1. Postman'ı aç
2. Import > File > postman-collection.json seç
3. Koleksiyonu içe aktar
4. Environment değişkenlerini ayarla (base_url, token)
Koleksiyon İçeriği:
- Kimlik doğrulama endpoints (kayıt, giriş, çıkış)
- Takım yönetimi (CRUD + üye işlemleri)
- Görev yönetimi (CRUD + dosya yükleme)
- Önceden yapılandırılmış istek örnekleri
- Environment değişkenleri desteği
POST /api/register # Kullanıcı kaydı
POST /api/login # Giriş
GET /api/user # Profil bilgisi (auth gerekli)
POST /api/logout # Çıkış (auth gerekli)
GET /api/teams # Takım listesi
POST /api/teams # Takım oluştur
GET /api/teams/{id} # Takım detayı
PUT /api/teams/{id} # Takım güncelle
DELETE /api/teams/{id} # Takım sil
POST /api/teams/{id}/members # Üye ekle
DELETE /api/teams/{id}/members/{userId} # Üye çıkar
GET /api/tasks # Görev listesi (filtreleme destekli)
POST /api/tasks # Görev oluştur
GET /api/tasks/{id} # Görev detayı
PUT /api/tasks/{id} # Görev güncelle
DELETE /api/tasks/{id} # Görev sil
POST /api/tasks/{id}/files # Dosya yükle
API, Laravel Sanctum kullanarak token tabanlı kimlik doğrulaması sağlar.
# 1. Kayıt ol
curl -X POST http://localhost:8000/api/register \
-H "Content-Type: application/json" \
-d '{"name":"Test User","email":"test@example.com","password":"password","password_confirmation":"password"}'
# 2. Giriş yap ve token al
curl -X POST http://localhost:8000/api/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"password"}'
# 3. Token ile API kullan
curl -X GET http://localhost:8000/api/teams \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
# Container içinde testleri çalıştır
docker compose exec app php artisan test
# Belirli test sınıfını çalıştır
docker compose exec app php artisan test --filter=AuthTest
Test Kapsamı: 20+ test, 100+ assertion
# App container shell
docker compose exec app bash
# MySQL CLI
docker compose exec mysql mysql -u sail -p task_management
# Redis CLI
docker compose exec redis redis-cli
# Migration çalıştır
docker compose exec app php artisan migrate
# Cache temizle
docker compose exec app php artisan cache:clear
# API dokümantasyonu oluştur
docker compose exec app php artisan l5-swagger:generate
Tarayıcıda doğrudan interaktif API test:
http://localhost:8000/api/documentation
- ✅ Endpoints'leri doğrudan test et
- ✅ İstek/yanıt şemalarını görüntüle
- ✅ Kimlik doğrulama desteği
- ✅ Gerçek zamanlı doğrulama
İçe aktarma ve kullanım:
# 1. Koleksiyonu içe aktar
Dosya: postman-collection.json
# 2. Environment kurulumu
base_url: http://localhost:8000
token: {{auth_token}} # Login sonrası otomatik ayarlanır
Örnek İş Akışı:
Auth/Register
- Yeni kullanıcı oluşturAuth/Login
- Token al (otomatik environment'a kaydedilir)Teams/Create Team
- Takım oluşturTasks/Create Task
- Görev oluşturTasks/Upload File
- Dosya yükle
🎯 Mobiva Task Management API - Saf API Çözümü
📋 API Test Seçenekleri:
- Swagger UI: http://localhost:8000/api/documentation (İnteraktif tarayıcı test)
- Postman:
postman-collection.json
dosyasını içe aktar (Tam istek koleksiyonu) - cURL: Dokümantasyondan kopyala-yapıştır hazır komutlar