API Endpoint Reference - Lumina-Enterprise-Solutions/prism-notification-service GitHub Wiki

🔌 API Endpoint Reference

Semua endpoint berada di bawah prefix /notifications.

Rute Publik (Tidak Memerlukan Otentikasi)


POST /send

Menerima dan memasukkan notifikasi ke dalam antrian pemrosesan. Endpoint ini dirancang untuk dipanggil oleh layanan internal lainnya.

Request Body:

{
  "recipient_id": "user-uuid-123",
  "recipient": "[email protected]",
  "subject": "Judul Notifikasi",
  "template_name": "welcome.html",
  "template_data": {
    "FirstName": "John"
  }
}
  • recipient_id (string, required): UUID dari pengguna penerima. Digunakan untuk pengiriman WebSocket.
  • recipient (string, required, email): Alamat email penerima.
  • subject (string, required): Judul email.
  • template_name (string, required): Nama file template HTML yang akan digunakan (misalnya, welcome.html).
  • template_data (object, optional): Data dinamis yang akan diinjeksikan ke dalam template.

Success Response (202 Accepted):

{
  "message": "Notification accepted for processing"
}

Respons ini hanya menandakan bahwa job telah berhasil dimasukkan ke antrian.


GET /health

Health check endpoint untuk monitoring dan service discovery oleh Consul.

Success Response (200 OK):

{
  "status": "healthy"
}

Rute Terproteksi (Memerlukan Otentikasi)


GET /ws

Meng-upgrade koneksi HTTP ke WebSocket untuk notifikasi real-time.

Otentikasi: Wajib menggunakan Authorization: Bearer <token> di header permintaan upgrade. User ID dari token akan digunakan untuk mendaftarkan koneksi.

Protokol:

  • Setelah koneksi berhasil, server akan mengirim pesan JSON setiap kali ada notifikasi baru untuk pengguna tersebut.
  • Contoh pesan dari server:
    {
        "type": "new_notification",
        "subject": "Your invoice #1234 is ready"
    }

Kembali ke Halaman Utama

⚠️ **GitHub.com Fallback** ⚠️