使用jQuery或Freemarker的RESTful Spring - 它仍然是RESTful吗?

时间:2014-04-13 21:16:34

标签: jquery spring rest freemarker

我现在正尝试使用Spring Framework设置我的第一个RESTful项目。我听说我可以通过许多不同的方式处理我的视图,例如使用JSP,Freemarker,Velocity - 然后在Spring Controllers中我将返回ModelAndObject。但另一种方法是将@RequestBody添加到控制器并将纯对象作为JSON(我喜欢)或XML返回。

现在我正在尝试使用Spring设置RESTful-backend并使用分离的HTML5 + jQuery项目来处理它。它现在对我来说有点困难,我想知道开始使用Freemarker / JSPs。

但我担心它不会是RESTful。我会返回视图,而不仅仅是纯对象,我的问题是:它仍然是RESTful练习吗?

其次,一个小问题是:使用像Freemarker / Velocity这样的模板语言和使用HTML5 + jQuery有什么区别?现在,作为一名业余程序员,我认为使用HTML5 + jQuery方法比使用例如花费更多的时间。 Freemarker的。 我知道在大公司中我们可以将FRONTEND和BACKEND团队分成两个部分:Spring REST后端 - 和jQuery + HTML前端 - 让外部人员完成他们的工作。但重点是不要将Freemarker用于jQuery,反之亦然?

期待收到你们的回复;)

1 个答案:

答案 0 :(得分:2)

  

它仍然是RESTful练习吗?

RESTful服务具有以下4个特征:

  • 他们是无状态,这意味着每个请求都是独立的,不需要任何先前请求的信息
  • 他们使用 HTTP谓词来定义操作
  • 他们面向资源
  • 具有某种表示,例如JSON和XML

您可以根据需要提供尽可能多的HTML5 + jQuery,条件是它是无状态的。你解释它的方式,它不是无状态的=> 它不是RESTful

我建议你在应用程序的前端部分留下HTML5 + jQuery逻辑,而后台只提供JSON对象。到目前为止,这是最健康的方法,它为您提供了一个RESTful后端。

前端不能是RESTful,因为它们依赖于不是无状态的会话。

  

我知道在大公司中我们可以将FRONTEND和BACKEND团队分开,将项目分成两个部分

就像我说的那样,你最好分为前端和后端,这不是大公司所做的事情,它是许多人喜欢的设计实践,包括小项目,因为优势使每个人受益。

  

使用Freemarker / Velocity等模板语言和使用HTML5 + jQuery之间有什么区别?

不同之处在于您不会受益于模板引擎提供的语法和表达式语言。您必须创建自己的Spring驱动模板,在其中集成HTML5 + jQuery。在Freemarker / Velocity / Thymeleaf或任何你得到的表达语言langauge,它可以帮助你使用它的表达功能来构建实际的HTML。实际上,这不是HTML5 + jQuery和Freemarker之间的差异问题,它是Spring默认模板和Freemarker之间差异的问题,因为您可以在两者中集成HTML5 + jQuery。这是模板引擎的不同之处,您可以使用不同的语言来处理模板。