Rest 为什么在前端使用来自MVC的模型?

Rest 为什么在前端使用来自MVC的模型?,rest,spring-mvc,model-view-controller,frontend,thymeleaf,Rest,Spring Mvc,Model View Controller,Frontend,Thymeleaf,我几乎用Java(SpringMVC+Thymeleaf)和它的MVC技术完成了所有的web项目。最近我听说了REST,并开始学习一些关于它的知识。我意识到这是我一生中见过的最酷的事情之一!(我只是开玩笑,绝对不是) 我们所需要的只是将数据解析为json类型,然后将其返回到前端。在前端,我们不再需要使用模型及其对象。前端只需一个get请求,就可以使用json类型获取nice中所有必需的数据 我们不需要使用一些奇怪的Thymeleaf构造来处理错误或遍历模板中的列表!我们可以使用javascrip

我几乎用Java(SpringMVC+Thymeleaf)和它的MVC技术完成了所有的web项目。最近我听说了REST,并开始学习一些关于它的知识。我意识到这是我一生中见过的最酷的事情之一!(我只是开玩笑,绝对不是)

我们所需要的只是将数据解析为json类型,然后将其返回到前端。在前端,我们不再需要使用模型及其对象。前端只需一个get请求,就可以使用json类型获取nice中所有必需的数据

我们不需要使用一些奇怪的Thymeleaf构造来处理错误或遍历模板中的列表!我们可以使用javascript及其框架处理所有事件和处理所有数据。它更强大

有什么我错过的吗?什么时候使用模型?何时使用json类型的数据?

前端开发有两种方法(有些重叠):在后端和前端生成页面

使用后端模型和Thymeleaf模板(或任何其他HTML模板),您可以在服务器端生成web页面。这意味着以下好处

  • 您可以用一种语言(Java)编写前端和后端逻辑
  • 您可以在一个地方强制执行数据和安全约束—在后端,使用Java代码或配置
  • 在许多情况下,用户获取第一页的速度更快,因为呈现发生在服务器上,并且用户获取一个已经呈现的页面
但这种方法有以下缺点:

  • 服务器必须呈现页面,这意味着服务器上的负载更大
  • 大多数现代网站和应用程序都使用JavaScript,因此您必须至少编写一些JavaScript
  • 服务器生成的页面甚至无法在浏览器中呈现
为JavaScript前端提供REST API有以下好处:

  • 卸载服务器,因为大部分与UI相关的工作都发生在用户的设备上
  • 使用现代前端框架,您可以实现更多功能
  • 在已经呈现的UI上导航更快,因为您不需要服务器呈现每个页面,只需要获得相对较小的JSON响应,然后动态更新页面
但这种方法有以下权衡:

  • 用户通常要等待更长的时间才能看到他们的第一个页面,因为浏览器需要下载大量脚本,然后花时间动态呈现页面
  • 在大型应用程序中,您需要一个完整的堆栈开发团队,或者两个团队分别在前端和后端工作
  • 您必须用JavaScript编写UI逻辑。做你想做的:)
  • 有时您必须在前端和后端复制约束:例如,如果用户无法编辑字段,则必须在前端将其显示为只读,并在REST服务中添加验证,因为用户可能会尝试直接访问REST API并绕过前端验证
  • 一般来说,您必须更加注意保护RESTAPI