Grails vs. JAX-RS for RESTful API/MVC App

mck*_*mey 9 rest model-view-controller grails groovy jax-rs

我知道标题可能看起来像苹果和橘子,但听我说... :)

我正在构建MVC应用程序的体系结构,并考虑将什么用于控制器/服务的核心.该堆栈还将用作RESTful API,与UI同样重要.

我正在缩小我的堆栈,用Grails或JAX-RS构建(此时我已经排除了其他选项,并且对扩展此列表并不感兴趣).无论哪种方式,我都将使用Groovy,我的模型和视图几乎不会受到这种选择的影响,因此可以进一步平衡两者之间的一些差异.以下是我一直在思考的优点/缺点,并且想知道是否有人有任何其他意见或警告经验.

Grails的

  • 我不打算使用大量内置的Grails功能(GSP/SiteMesh,Hibernate,几乎所有插件),所以我担心Grails可能对我的目的来说有点沉重
  • 我担心我对处理REST API的能力没有足够的控制权,因为它非常以视图为中心
  • 我已经看到插件质量的不一致到我不确定我认为它们是'专业'的地步
  • 我喜欢惯例 - 配置和编辑 - 刷新,如果我使用JAX-RS,我可能想要连接类似的东西
  • 我喜欢的一切它简化Grails的命令行,但我担心它可能会用我的方式,因为我不使用尽可能多的堆栈得到
  • 我喜欢脚手架,但由于我没有使用Hibernate或GSP/SiteMesh,它可能无法很好地融合

JAX-RS

  • JAX-RS是为REST而设计的.这将使我的RESTful API真正实现,因为我完全控制
  • Groovy是Grails闪耀的重要组成部分,所以即使在JAX-RS中我也会从中受益
  • 我喜欢JAX-RS不会自动引入其他一些东西,所以我可以更好地控制哪些组件进/出
  • 不幸的是,因为它不会引入任何其他我最终需要的东西需要更多的工作,而Grails可能有一个插件
  • 将错过grails命令行和脚手架; 也许Maven可以填补一些空白

看起来每个用于创建动作和路由的功能非常相似(尽管实现样式不同).事实上还有其他SO问题希望触及这一点,所以我不太关心.

Chr*_*orf 7

我去年在几个框架中编写了一个小型REST服务原型(即Grails,Play!,Spring MVC,Jersey,Restlet).我对Grails的这种关注的感觉是,尽管Grails支持REST风格的架构,但它并不是真正为它做的.我不想在这里有宗教信仰,所以如果你只想将资源映射到URL和HTTP动词就好了,但如果你想深入挖掘REST并严格控制返回码,位置标题等等,你可能仍然能够用Grails做到这一点,但它可能在纯REST框架中得到更好的支持.

Grails还附带了很多依赖项,如果你开始使用绿色字段,这可能不是问题,但是当你必须将它与现有的遗留组件或框架集成时会导致问题.

从两个使用过的REST框架中,我更喜欢Jersey,因为它只适用于我的情况并且文档很好(虽然有点专注于Maven和Netbeans).