abpframework / eShopOnAbp

Reference microservice solution built with the ABP Framework and .NET, runs on Kubernetes with Helm configuration, includes API Gateways, Angular and ASP.NET Core MVC applications, PostgreSQL and MongoDB databases
https://www.eShopOnAbp.com/
MIT License
694 stars 272 forks source link

eShopOnAbp: web application api-configuration dependency #152

Closed gterdem closed 7 months ago

gterdem commented 1 year ago

Angular app needs to get localization and permission information from api-configuration end-point. This request is re-routed to administration service (https://github.com/abpframework/eShopOnAbp/blob/d6ba98c098e2158933da2ede06370f846b871a64/gateways/web/src/EShopOnAbp.WebGateway/appsettings.json#L49).

Since AdministrationService doesn't have reference to other microservices' Application.Contracts module, it can not obtain related localization/permission info.

We can:

ohroy commented 1 year ago

It's been a long time, is there any progress on this? I think option3 is a better way although it has the additional burden of implementing . (or we do not use gateway, just use xx.Microservice.HttpApi then we can make abp/*** works. But this is not the best practice for microservices... )

BTW, why every microservice application need AdministrationService's EfCore module? This is a very strange thing logically, and there is a very large degree of coupling here. This is a huge hurdle for distributed deployments, since each microservice requires the AdministrationService's database. I think the microservice just need permission store from AdministrationService, can we just find a way to share user's permissions (like store it in jwt) then we can get rid of the very heavy AdministrationService....

Any idea?

gterdem commented 7 months ago

Solved via https://github.com/abpframework/eShopOnAbp/pull/235

It is now using aggregation pattern to retrieve the localization from different microservices.