Apache Sling"更多REST"是什么意思?比Spring-mvc?

时间:2014-03-27 17:13:22

标签: java rest spring-mvc web sling

我有时含糊地听到

  

Apache Sling比Spring-mvc更多的REST

来自同事们。

我没有机会从他们那里了解它。 我对Spring-mvc有足够的经验,而且我是Apache Sling的新手。

任何人都可以解释上面的引用吗?

P.S。

我希望看到这些产品的非REST功能列表。

例如: Spring-mvc允许使用会话属性,这与REST原则相矛盾 - 无国籍。

3 个答案:

答案 0 :(得分:4)

我同意其他人认为很难衡量框架的RESTfulness; - )

我的知识Spring MVC非常有限,所以我不能对此发表评论。

Apache Sling促进了RESTful设计应用程序的方式,因为它的核心设计和资源是一流的公民,默认的1:1 URL到内容存储库的映射等等。

如果您遵循其设计模式和示例,您很可能最终得到一个RESTful的应用程序,包括干净的URL,没有HTTP会话,做正确的HTTP方法等。

你也可以用Sling做非RESTful的事情,但是它更难,你将与Sling的自然做事方式作斗争。

因此,Sling自然会引导您使用RESTful应用程序。其他框架可能允许您保持RESTful,具有相同的权重。在Sling中,重点显然是RESTful,所有核心工具和技术都可以帮助您实现目标。

答案 1 :(得分:1)

Apache Sling专门用于促进实际遵守休息约束的应用程序 - 也就是说,旨在为URL位置的资源提供服务而不进行状态更改。 Spring更像是一个通用的Web应用程序基础架构。

答案 2 :(得分:0)

没有框架比其他框架更多或更少RESTful。这就像说用于建造房屋的材料使其或多或少地适合特定的建筑风格。如果你的应用程序或多或少是RESTful,那么你会如何设计它,以及你的客户如何访问它。您可以拥有一个完全不使用框架的RESTful应用程序,只要它填充REST约束即可。如果忽略这些应用程序,你可以创建一个非RESTful的应用程序。

如果你的应用程序或多或少的REST不是你正在使用的框架,它将决定什么,它是:

  • 无国籍。
  • 可缓存。
  • 客户端不需要带外信息(HATEOAS)。
  • 尊重基础协议的标准。
  • 尊重客户端 - 服务器架构。

请注意,REST不是人们遇到的大多数问题的充分解决方案。大多数人称之为REST的只是任何非SOAP的HTTP API,而你的同事可能只是试图将REST作为权威来吸引他们的个人偏好。