Java 将web前端构建到Spring boot REST api后端?

Java 将web前端构建到Spring boot REST api后端?,java,rest,jsp,spring-boot,spring-rest,Java,Rest,Jsp,Spring Boot,Spring Rest,所以,我正在开发一个android应用程序来自学这些概念。我目前正在使用SpringBoot开发一个后端,我将它实现为一个RESTfulAPI 我已经读了很多关于这件事的书,每个人似乎都有不同的方法,而我在这一点上太缺乏经验和幼稚了,不知道该怎么做 我想做的是有一种方法来实现该应用程序的网站组件(因为该应用程序仅适用于android,我需要能够允许iPhone和桌面用户使用它,并且我可能会为此使用类似PhoneGap的东西) 我目前的理解为我提供了一些途径,我不确定该做什么或如何做 一种方法是,

所以,我正在开发一个android应用程序来自学这些概念。我目前正在使用SpringBoot开发一个后端,我将它实现为一个RESTfulAPI

我已经读了很多关于这件事的书,每个人似乎都有不同的方法,而我在这一点上太缺乏经验和幼稚了,不知道该怎么做

我想做的是有一种方法来实现该应用程序的网站组件(因为该应用程序仅适用于android,我需要能够允许iPhone和桌面用户使用它,并且我可能会为此使用类似PhoneGap的东西)

我目前的理解为我提供了一些途径,我不确定该做什么或如何做

一种方法是,我可以创建一组JSP模板并修改REST控制器,以根据标头中包含的信息返回页面,确定web是否需要JSON或需要完整页面。一个明显的缺点是需要为每个URL使用控制器方法(一个返回JSON,另一个返回遵循MVC模式的HTML/JSP)

我可以设想的另一种方法是为web创建一个完全独立的应用程序,它只将RESTAPI作为填充页面的数据源。这甚至可以用PHP或Javascript之类的东西来完成。当然,不利的一面是开发(和维护)一个完全独立的应用程序的额外工作,以及为每一点所需的数据与之交互所需的大量样板文件


有人能澄清一下吗?我的头在游动。我知道我不是唯一一个有这个问题的人,但是要找到关于这个主题的高质量信息是非常困难的。

您可以保留后端服务。这样您就可以拥有良好的代码可维护性和可伸缩性。 您可以构建Android应用程序来使用rest api并呈现视图,同样,您也可以使用Angular、ReactJS等框架构建单页应用程序来使用服务器端rest api并呈现视图

它们可能必须作为两个独立的项目来处理,我认为这是一个处理的优势。 RESTAPI结构中的任何更改可能都必须在两个客户机项目中进行更改,并且同样可以使用良好的文档工具(如Swagger.io)和适当的自动化集成测试用例进行管理


我曾经用这种方法构建过Android原生应用程序、web前端(Angular)、服务(spring boot和scala),并且在这种架构中做得很好。

完全基于rest的web应用程序也可以做得很好!实际上,您可以在正在创建的混合android应用程序中重复使用大量代码。

如果您想使用mvc,您可以使用一台服务器,为所有应用程序提供公共服务和dao层,并为web和rest提供不同的控制器。

一个明显的缺点是这两个应用程序之间需要额外的网络通信。想法?是的,当涉及到应用到服务时,网络开销可能相当大,这是无法避免的,因为应用在用户手机上运行。但当涉及到Web前端和服务时,您可以确保它们在同一台服务器机器或同一个网络中可用,因此网络延迟可能相当小。我知道JSP只是生成HTML/PlainText,但这似乎更容易说。类似于不返回PHP的方式。因此,除了这个看起来有点宽泛/基于观点的问题(即“应该使用哪个框架”)之外,您在实现它时到底被困在了什么地方?在事物的体系结构中。我不是在寻找一种可以使用的技术,而是一种适合和推荐的方法和模式。