Bu proje, Spring Boot kullanarak bir bildirim mikroservisi sağlar. Servis RabbitMQ üzerinden e-posta gönderim kuyruğuna mesaj atar ve "account verification", "password change" ve "order received" endpoint'leri sunar.
- REST API gelen isteği karşılar ve Producer'ı tetikler.
- Producer (API / Servis) mesajı RabbitMQ Direct Exchange'e iletir.
- Consumer (Spring Listener) mesajı queue'dan alır ve DB'ye
PENDINGstatüsüyle kaydeder. - Mail gönderimi gerçekleştirilir (SMTP / SES).
- Gönderim başarılıysa DB
SENT, başarısızsaFAILEDolarak güncellenir (sent_atveyaerroralanıyla birlikte).
- Java 17+ (projede belirtilen sürüm)
- Spring Boot
- RabbitMQ (
spring-boot-starter-amqp) - PostgreSQL (JPA yapılandırması)
- Lombok
Tüm uç noktalar POST olarak çalışıyor:
POST /notifications/verify-accountPOST /notifications/change-passwordPOST /notifications/order-received
İstek gövdesi NotificationDTO ile gönderilir (ör: receiver, title, body, dynamicValue).
- RabbitMQ ve PostgreSQL localde veya docker da çalışır durumda olmalı.
src/main/resources/application.propertiesdosyasındaki ayarları ortamınıza göre güncelleyin.- Projeyi çalıştırın:
./mvnw spring-boot:runYa da jar paketle:
./mvnw clean package
java -jar target/notificationService-0.0.1-SNAPSHOT.jarcurl ile verify-account çağrısı:
curl -X POST http://localhost:8080/notifications/verify-account \
-H "Content-Type: application/json" \
-d '{"receiver":"user@example.com","title":"Doğrulama","body":"Lütfen hesabınızı doğrulayın","dynamicValue":"12345"}'NotificationServiceImpliçindechangePasswordveorderReceivedşu anda dönüş değeri oluşturuyor ancak RabbitMQ'ya mesaj göndermiyor. Geliştirme yapılabilir.- Mail gönderimi/smtp bilgilerinizi
application.properties'e ekleyin.
