Skip to content

ad3n/Microservices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fully Isolated System Architecture (Microservices)

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 .env yang terdapat pada service security (security/.env), sesuaikan dengan konfigurasi database

  • Build dan jalankan docker-compose up atau jika menggunakan task cukup dengan task start

  • Seeding data melalui endpoint POST http://localhost:2727/api/seed

  • Login melalui endpoint POST http://localhost:2727/api/login

{
    "email": "[email protected]",
    "password": "admin"
}

Maka akan mengembalikan response

{
    "token": "[TOKEN]"
}
  • Panggil endpoint GET http://localhost:2727/api/hello dengan header Authorization: Bearer [TOKEN] maka akan mengembalikan response
{
    "message": "Hello Service 1"
}
  • Panggil endpoint GET http://localhost:2727/api/hey dengan header Authorization: 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
POST   /login 
POST   /seed
  • 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

About

Demo Fully Isolated System Architecture

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published