- Traefik: load balancing, rate limiting, config https, Circuit breakers, retry ....
- API Gateway: Authorize
- Blog Service
- Auth Service
[
{
"service": "auth",
"method": "login",
"ispublic": true
},
{
"service": "blog",
"method": "createpost",
"ispublic": false
}
]
http://domain/api/service/method
curl -X POST http://0.0.0.0/api/auth/login
{
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6MSwiaWF0IjoxNTE2MjM5MDIyfQ.gO9vEwksOuFttxM1vE7xifrqoZ2PMh9dt_lGH2p2zvY",
"expires_in":21600,
"token_type":"Bearer"
}⏎
Create POST (accept role = 1 )
curl -X POST http://0.0.0.0:80/api/blog
URL is Invalid!
case 2: no token or a wrong token
curl -X POST http://0.0.0.0:80/api/blog/createpost
Unauthorized!
curl http://0.0.0.0:80/api/blog/createpost -X POST -H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6MiwiaWF0IjoxNTE2MjM5MDIyfQ.u5-jKQxdwvLiE6uOn2ZcKE52ehtd9SfC-HW7olPICqg"
Unauthorized!
curl http://0.0.0.0:80/api/blog/createpost -X POST -H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6MSwiaWF0IjoxNTE2MjM5MDIyfQ.gO9vEwksOuFttxM1vE7xifrqoZ2PMh9dt_lGH2p2zvY"
{"message":"Tao Bai Viet Thanh Cong!"}⏎