Bu proje, Twitter'ın temel özelliklerini sunan, modern mikroservis yaklaşımlarına uygun olarak geliştirilmiş bir RESTful API uygulamasıdır. Kullanıcı yönetimi, tweet paylaşımı, etkileşimler (like, comment, retweet) ve güvenlik katmanlarını içeren uçtan uca bir backend çözümüdür.
- Authentication & Authorization:
- JWT (JSON Web Token) tabanlı güvenli kimlik doğrulama.
- Kullanıcı kaydı (Register) ve girişi (Login).
- Rol bazlı erişim kontrolü.
- Tweet Yönetimi:
- Tweet oluşturma, listeleme, güncelleme ve silme.
- Tweet bazlı karakter sınırı (280 karakter).
- Etkileşimler:
- Beğeni (Like): Tweetleri beğenme ve beğeniyi geri çekme.
- Yorum (Comment): Tweetlerin altına yorum ekleme ve yönetme.
- Retweet: Başka bir kullanıcının tweetini kendi profilinde paylaşma (mükerrer retweet engeli ile).
- Güvenlik & Validasyon:
- Şifrelerin BCrypt ile hash'lenerek saklanması.
- Input validasyonları (E-posta formatı, boş alan kontrolü vb.).
- Global hata yönetimi (Custom Exceptions).
- Backend: Java 17, Spring Boot 3.x / 4.x
- Veritabanı: PostgreSQL
- Güvenlik: Spring Security, JWT (JJWT Library)
- Veri Erişimi: Spring Data JPA, Hibernate
- Yardımcı Kütüphaneler: Lombok, Jackson
- Araçlar: Maven, Postman
-
Projeyi Klonlayın:
-
Veritabanı Ayarları:
src/main/resources/application.propertiesdosyasındaki veritabanı bilgilerini güncelleyin: -
Projeyi Derleyin ve Çalıştırın:
| Method | Endpoint | Açıklama |
|---|---|---|
| POST | /api/auth/register |
Yeni kullanıcı kaydı |
| POST | /api/auth/login |
Giriş yap ve Token al |
| GET | /api/tweets |
Tüm tweetleri listele |
| POST | /api/tweets |
Yeni tweet paylaş (Auth Gerekli) |
| POST | /api/likes/{tweetId} |
Tweete beğeni at/kaldır |
| POST | /api/retweets/{tweetId} |
Tweeti retweetle |