-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Refactor] Extract API #140
Comments
I'm wondering how to split frontend and backend in Blazor Server. Current plan is to have a separate optional container for API. |
This is just a reminder to myself what I'm planning to do. (Or others if they are quicker :), you have decent code quality, so it's easy to contribute) Doing it while keeping Blazor Server would be tricky, but not unfeasible. Trick is to create a business logic layer with an interface at first, make the .Core project a full-fledged back-end project serving a REST API, and make an implementation in the front-end project which depends on the REST API. The FE and BE are now two separate containers (stateless), so they can be now scaled independently, and only need to comminucate in-cluster. Since this will make the FE thinner, we could explore client-side Blazor as well, and others can (I'm not an android dev) look at automation, nexcloud FE, and mobile. |
Alright, I'm interested to see how it will look like. Just to share some more details how I was thinking on the overall architecture: The idea was to have the I later understood having the need of an API which could be also used by any non-.Net based environment, so my plan was to offer it in a separate project/container |
My idea exactly :) The API would be a separate project building on the .Core one, which will host the business logic. So EF packages could be contained to the .Core package and no further. Later, when we have Auth (I'm looking on Keycloak for that one, since you definitely do NOT want to implement OAuth2, and self-hosted guys SSO with Keycloak), we can just wire it up to the API and Blazor (nice experience will be integrating OAuth with Blazor, I'm an Angular girl myself :) ) Obviously separate entry point = separate container, so the app will have 4+1 containers (postgres, BE, FE, Keycloak + init container) of which postgres and keycloak is shared with other self-hosted stuff on the cluster. |
Hi @TheAxelander . The API is being worked on. Please see the branch ISS140 in my fork. |
Extract REST API between frontend and back-end.
Extract separate back-end docker container
Create docker-compose file with front-end and back-end.
Enables issues: #127 #88 #100 #68
The text was updated successfully, but these errors were encountered: