-1

to summarize a bit my current situation: I am building a backend based on microservices using spring boot. These are aggregated behind an api-gateway. My intention is to consume these api's from both a mobile app and a webapp.

However, I'm constantly wondering what kind of technology I should use to build my webapp frontend?

This is a project I'm doing on my own and I currently don't have any knowledge of javascript frameworks like react, angular or vue.

Basically, I can not find a valid reason for investing the time in learning a javascript framework to build a SPA-frontend. I am still convinced that server-side should be the first option, client-side the second option. I also rather see an MPA as a valid option for my app instead of a SPA.

I have knowledge however of thymeleaf and spring mvc. Basically I would like to keep all my logic on the server side as much as possible. I was looking into using the non-blocking reactive webclient feature of spring mvc to call my REST-api's server side and send the data on to the client.

Anyone have any experience with this kind of setup? Any reason why you shouldn't do this? As I understand it, using the webclient feature is async and non-blocking, which is already a step up from the classic resttemplate feature. Difference with e.g. jquery or any other javascript technology is that the api is called serverside instead of clientside, so this means full reloads of the page (e.g. also the header, footer, menu, ...) instead of a partial reload like when using javascript?

A huge advantage I'm seeing however is that even if a user does not have javascript enabled, the webapp will still just work by using this setup.

I don't know if this is a valid option in context of microservices to build a frontend? Anyone here also using this setup and has some more insight in drawbacks/issues with this?

Thanks in advance for any feedback!

1 Answer 1

0

I'd start with a list of requirements and constraints to drive your decision. Does your app need to run on desktop and mobile? What is the security design? How long does the user stay on the page on average and how data heavy is the application? Who is the intended audience and what might their expectations be on the responsiveness? How complex is the data model?

My experience with server-side templating like thymeleaf is that it was fine for simple use cases, but had a limited growth path as features were added. For any longer running API calls you'd need to do a page load and display a spinner and call another API to do the heavy lifting, then update the data on screen. Same for features like custom validation, search suggestions, sortable data grids etc. you'll get into custom javascript coding and what used to be called AJAX rather sooner than later.

Whereas with a SPA framework, there is a learning curve, but more sanity to grow the feature set. Also (in case of Angular) you're on typescript.

At the end of the day, there is no one answer. You also have to make the call to proceed with the existing skillset to get to results quickly vs. spending the time to evaluate new frameworks for the best fit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.