我有时含糊地听到
Apache Sling比Spring-mvc更多的REST
来自同事们。
我没有机会从他们那里了解它。 我对Spring-mvc有足够的经验,而且我是Apache Sling的新手。
任何人都可以解释上面的引用吗?
P.S。
我希望看到这些产品的非REST功能列表。
例如:
Spring-mvc
允许使用会话属性,这与REST原则相矛盾 - 无国籍。
答案 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不是你正在使用的框架,它将决定什么,它是:
请注意,REST不是人们遇到的大多数问题的充分解决方案。大多数人称之为REST的只是任何非SOAP的HTTP API,而你的同事可能只是试图将REST作为权威来吸引他们的个人偏好。