Sıfırdan Production-Ready API Geliştirmeye Kadar Her Şey
Bu repository, Java dünyasının en popüler framework'ü olan Spring Boot'u sıfırdan öğrenmek isteyenler için hazırlanmış kapsamlı bir Türkçe rehber serisidir. Seri boyunca, temel konseptlerden başlayarak büyük ölçekli ve production-ready (canlı ortama hazır) API'ler geliştirmeyi öğreneceksiniz.
Bu rehber serisi:
- ✅ Sıfırdan başlayanlar için uygun
- ✅ Kurumsal (Enterprise) düzeyde en iyi pratikleri içerir
- ✅ Katmanlı mimariyi (Layered Architecture) öğretir
- ✅ Modern Java web geliştirme standartlarını kapsar
- ✅ Gerçek dünya senaryoları ve projeler içerir
📚 Parça 1: Temeller ve İlk Uygulama Spring Boot'a Giriş ve İlk Adımlar
- Spring Framework ve Spring Boot nedir? Farkları nelerdir?
- Spring Initializr kullanımı (Maven vs Gradle)
- IoC (Inversion of Control) ve Dependency Injection (Bağımlılık Enjeksiyonu)
- İlk Hello World REST API uygulaması
- Application Properties ve YAMl yapılandırması
- Pratik: Hello API Projesi 📖 Parça 1'i Oku →
📚 Parça 2: Controllers ve Rest API Temelleri Profesyonel API Endpoint'leri Oluşturma
- RESTful prensipleri ve Controller mantığı (@RestController, @RequestMapping)
- HTTP Metodları (GET, POST, PUT, PATCH, DELETE)
- URL Parametreleri (@PathVariable, @RequestParam)
- İstek gövdesi işleme (@RequestBody ve ResponseEntity)
- Lombok kütüphanesi ile boilerplate kodlardan kurtulma
- Pratik: Kütüphane API v1 (Memory-based) 📖 Parça 2'yi Oku →
📚 Parça 3: DTO Pattern ve Validation Veri Transferi ve Doğrulama
- DTO (Data Transfer Object) Pattern nedir ve neden kullanılır?
- MapStruct veya ModelMapper ile Object Mapping
- Hibernate Validator / Spring Validation ( @Valid, @NotBlank, @Size vb.)
- @ControllerAdvice ve @ExceptionHandler ile Global Hata Yönetimi (Global Exception Handling)
- Pratik: Kütüphane API v2 📖 Parça 3'ü Oku →
📚 Parça 4: Database Entegrasyonu ve JPA Veritabanı Yönetimi ve ORM Katmanı
- Spring Data JPA ve Hibernate temelleri
- Veritabanı konfigürasyonu (PostgreSQL / MySQL)
- Entity sınıfları oluşturma (@Entity, @Id, @Column)
- JpaRepository arabirimi ve türetilmiş sorgular (Derived Queries)
- İlişkiler: OneToOne, OneToMany, ManyToOne, ManyToMany
- Pratik: Kütüphane API v3 (Veritabanı entegreli) 📖 Parça 4'ü Oku →
📚 Parça 5: Service Layer ve İş Mantığı (Business Logic) Katmanlı Mimari ve Transaction Yönetimi
- Service katmanı oluşturma (@Service)
- Separation of Concerns (Sorumlulukların ayrılması)
- Pagination ve Sorting (Sayfalama ve Sıralama)
- Veri tutarlılığı ve @Transactional kullanımı
- Pratik: Kütüphane API v4 📖 Parça 5'i Oku →
📚 Parça 6: Database Migrations (Sürüm Kontrolü) Veritabanı Şema Yönetimi
- Neden veritabanı versiyon kontrolüne ihtiyacımız var?
- Flyway (veya Liquibase) kurulumu ve entegrasyonu
- Migration scriptleri (SQL) yazma
- Seed data (Başlangıç verisi) oluşturma 📖 Parça 6'yı Oku →
📚 Parça 7: Spring Security ve JWT Güvenlik ve Kimlik Doğrulama
- Spring Security mimarisine giriş
- Filter Chain ve Security Config yapılandırması
- JWT (JSON Web Token) ile Stateless Authentication
- Role-based Authorization (@PreAuthorize, @Secured)
- Parola şifreleme (BCryptPasswordEncoder)
- Pratik: Kütüphane API v5 (Güvenli Sürüm) 📖 Parça 7'yi Oku →
📚 Parça 8: İleri Seviye Özellikler Uygulamayı Zenginleştirme
- Asenkron işlemler (@Async)
- Zamanlanmış görevler (@Scheduled)
- Dosya Yükleme / İndirme (Multipart File Upload)
- Spring Mail ile Email gönderimi
- Pratik: Fatura oluşturma ve mail atma servisi 📖 Parça 8'i Oku →
📚 Parça 9: Caching ve Performans Önbellekleme Stratejileri
- Spring Cache Abstraction (@EnableCaching, @Cacheable, @CacheEvict)
- Redis Entegrasyonu
- Redis ile Distributed Caching
- Cache geçersiz kılma stratejileri 📖 Parça 9'u Oku →
📚 Parça 10: Testing (Test ve Kalite Güvencesi) Güvenilir Kod Yazma
- Unit Testing (JUnit 5 ve Mockito)
- Service katmanı testleri
- Integration Testing (@SpringBootTest)
- Controller Testleri (MockMvc)
- Repository Testleri (@DataJpaTest)
- Testcontainers kullanımı 📖 Parça 10'u Oku →
📚 Parça 11: Deployment ve Docker Canlı Ortama Hazırlık
- Spring Boot uygulamasını Dockerize etme (Dockerfile)
- Docker Compose ile PostgreSQL, Redis ve Uygulamayı ayağa kaldırma
- Multi-stage build optimizasyonu
- Environment variables (Ortam değişkenleri) yönetimi 📖 Parça 11'i Oku →
📚 Parça 12: CI/CD ve Monitoring Sürekli Entegrasyon ve İzleme
- GitHub Actions ile CI/CD Pipeline oluşturma
- Spring Boot Actuator ile metrik takibi
- Prometheus ve Grafana entegrasyonu (Basit seviye)
- Loglama stratejileri (Logback, SLF4J) 📖 Parça 12'yi Oku →
📚 Parça 13: E-Commerce API Projesi (Gerçek Dünya Uygulaması) Final Projesi
- Tam özellikli E-Ticaret backend mimarisi
- Ürün, Kategori ve Stok yönetimi
- Sepet ve Sipariş state yönetimi
- Kredi kartı ödeme simülasyonu
- Admin yetkilendirmeleri ve raporlama endpointleri 📖 Parça 13'ü Oku →
- Java 17 veya üzeri (Önerilen: Java 21)
- Maven (veya Gradle)
- IDE (IntelliJ IDEA, Eclipse veya VS Code)
- Docker ve Docker Compose (İleriki bölümler için)
Projeyi klonlayın ve ilk uygulamanızı çalıştırın:
# Repoyu klonlayın
git clone https://github.com/Firatasi/java-springboot-tutorial.git
cd java-springboot-tutorial/1-basics
# Maven ile projeyi derleyin ve çalıştırın
./mvnw spring-boot:runTarayıcınızda test edin: http://localhost:8080/api/hello
Bu seri boyunca kurumsal düzeyde kabul görmüş güncel teknolojiler kullanılacaktır:
- Framework: Spring Boot 3.2+
- Dil: Java 17/21
- Database: PostgreSQL
- ORM: Spring Data JPA / Hibernate
- Migration: Flyway
- Security: Spring Security 6 & JWT
- Mapping: MapStruct / Lombok
- Testing: JUnit 5, Mockito, Testcontainers
- Caching: Redis
- Containerization: Docker & Docker Compose
- Monitoring: Spring Boot Actuator, Prometheus, Grafana
Bu rehber serisine katkıda bulunmak isterseniz:
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request açın
🐛 Hata düzeltmeleri
📝 Dokümantasyon iyileştirmeleri
✨ Yeni örnekler ve projeler
🔧 Kod iyileştirmeleri
🌐 Çeviri desteği
Bu rehber serisini beğendiyseniz, GitHub'da yıldız vermeyi unutmayın! ⭐
Sorularınız, önerileriniz veya profesyonel bağlantı için:
- GitHub Issues açabilirsiniz
- Pull Request gönderebilirsiniz
Bu proje MIT Lisansı ile lisanslanmıştır. Daha fazla bilgi için LICENSE dosyasına bakabilirsiniz.
Etkili Öğrenme İçin: ✅ Her parçayı sırayla takip edin ✅ Kod örneklerini kendiniz yazın ✅ Pratik projeleri tamamlayın ✅ Dokümantasyonu okuyun ✅ Toplulukla etkileşimde bulunun
Pratik Yapın:
- Her parçadaki örnekleri çalıştırın
- Kendi projelerinizi geliştirin
- GitHub'da paylaşın
- Geri bildirim alın
Parça 1: Temeller ve İlk Uygulama ↓ Parça 2: Controllers ve Rest API ↓ Parça 3: DTO Pattern ve Validation ↓ Parça 4: Database Entegrasyonu ve JPA ↓ Parça 5: Service Layer ve İş Mantığı ↓ Parça 6: Database Migrations ↓ Parça 7: Spring Security ve JWT ↓ Parça 8: İleri Seviye Özellikler ↓ Parça 9: Caching ve Performans ↓ Parça 10: Testing ↓ Parça 11: Deployment ve Docker ↓ Parça 12: CI/CD ve Monitoring ↓ Parça 13: E-Commerce API Projesi
Spring Boot öğrenme yolculuğunuzda başarılar dileriz!
Unutmayın:
- Sürekli pratik yapın
- Dokümantasyonu okuyun
- Toplulukla etkileşimde bulunun
- Kod kalitesine önem verin
- Testing'i ihmal etmeyin
- Security'yi ciddiye alın
Hazırsanız, Parça 1'den başlayın! 🚀
Toplam Parça Sayısı: 13
Son Güncelleme: 2026
Versiyon: 1.0
Dil: Türkçe