Arsitektur
Request
|
|
|
Api Gateway --- Auth Provider
|\__________________________
| | |
| | |
Service-1 Service-2 Service-3
File Konfigurasi
Setiap service terdapat file konfigurasi (.env) yang dapat disesuaikan dengan runtime environment
Cara Install
-
Buat database
microservices -
Ubah file
.envyang terdapat pada service security (security/.env), sesuaikan dengan konfigurasi database -
Build dan jalankan
docker-compose upatau jika menggunakan task cukup dengantask start -
Seeding data melalui endpoint
POST http://localhost:2727/api/seed -
Login melalui endpoint
POST http://localhost:2727/api/login
{
"email": "surya.iksanudin@gmail.com",
"password": "admin"
}Maka akan mengembalikan response
- Panggil endpoint
GET http://localhost:2727/api/hellodengan headerAuthorization: Bearer [TOKEN]maka akan mengembalikan response
{
"message": "Hello Service 1"
}- Panggil endpoint
GET http://localhost:2727/api/heydengan headerAuthorization: Bearer [TOKEN]untuk simulasi internal service call yaitu call service 2 dari service 3, maka akan mengembalikan response
{
"message": "Service 3 called service 2 with response: Hello Service 2"
}Endpoint
- Publik
- Privat (Butuh header authorization)
POST /api/users PUT /api/users/:id DELETE /api/users/:id GET /api/users/:id GET /api/users POST /api/validate GET /api/hello GET /api/hi GET /api/hey
Pengembangan Independen
Setiap service dapat dikembangkan secara independen tanpa perlu terkoneksi dengan Api Gateway atau Arsitektur secara utuh. Untuk melakukan simulasi privat endpoint (Api) cukup dengan mengirimkan header X-User-ID dan X-User-Email pada request.
Ini karena Api Gateway dirancang untuk melakukan validasi token dan kemudian mengubah token menjadi header X-User-ID dan X-User-Email melalui endpoint /api/validate yang mengembalikan informasi user. Header (X-User-ID dan X-User-Email) kemudian diteruskan ke endpoint service (sesuai dengan mapping) sebagai tanda bahwa request telah divalidasi oleh Api Gateway