Putting two ends together

There are two parts that we need to connect between the frontend and the backend. The first part is the build process. Currently, we need to use mvn and npm to build the two parts separately. Once they are connected, we will only need to execute a single command to build the entire application.

The second part is to bridge the communication between the frontend and the backend. As mentioned, during development, the frontend will be served by webpack-dev-server under a different port than the one of the backend. Currently, both ends use the same port, 8080. We will need to change the port of the frontend to 3000 so that we can have both ends up and running at the same time. When our application is served from http://localhost:3000, the requests that the frontend pages send to the backend at http://localhost:8080, by default, will be blocked by the browser because they are cross-origin. The frontend won't be able to access the response of those requests unless we bridge the communication. We can achieve this by changing the backend to add HTTP header, Access-Control-Allow-Origin, in the HTTP response to allow the frontend to access the response. This will work, but is not ideal in our case, because once we package the whole application, there won't be any cross-origin requests. Instead, we will use another way, which is to add an HTTP proxy on the frontend side to pass the requests to the backend. In this way, all requests will be from the same origin as far as the browser can tell.

For our TaskAgile application, we put the frontend and the backend in the same package and deploy them together as a whole. This is not the only way to deploy our application. Another common approach is to deploy the frontend and backend separately on different servers. In that case, we should add the Access-Control-Allow-Origin header to the HTTP response to bridge the communication.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.218.97.75