lundi 26 septembre 2016

How to configure emberjs routes in SpringMVC?

We have an Ember frontend and Spring Boot backend. When Ember runs standalone on port 4200 and the Spring Boot backend on 8080, then everything works. But this scenario is somewhat unusual for production environments, not only because of CORS problem. The URL of the backend must be known already on build time (!) of the Ember application, because it's integrated within the compiled ember app. This is not possible for many projects. Therefore, we want to integrate the frontend Ember App in the Spring Boot backend, which is usual for e.g. SPA with AngularJS. The Ember app (from /dist) is thus copied to src/main/resource/static. After adjusting the rootURL and API.host with the Ember app that works very well. The problem arises now, when a manual reload for an URL is made in the browser. Such a URL is now an Ember route. The http-request arrives at the Spring Boot backend which don't knows the route and we got a 404 error.

How should SpringMVC (as part of the Spring Boot backend) answers the httpRequest for such a route, so that the Ember app continue their work and handle the request ?

HTML Page request (by browser)
http://host/springBootAppContext/index.html => src/main/resource/static/index.html (ember app) 

REST API request (by Ember App)
http://host/springBootAppContext/users => RESTController mapped for /users

Ember Routing (by Ember App)
http://host/springBootAppContext/user-list => ???

You can't provide a normal Spring MVC @Controller class because the ModelView response is interpretet as user-list.html or similar which doesn't exist




Aucun commentaire:

Enregistrer un commentaire