Jim*_*man 5 grails web-services
我有一个相当传统的Grails应用程序.它是单片的; 虽然它在功能线上有点分裂成插件,但它构建在一个单一的战争部署中.由于公司架构限制,我需要考虑将应用程序的持久性隔离到Web服务(或一系列Web服务)中.将Grails应用程序划分为持久性服务和演示应用程序的最佳方法是什么?
对于您的问题,我没有现成的解决方案,而且我也不相信有这样的解决方案。我将仅解释我使用的解决方案以及我在您的情况下会考虑的内容。
在我的组织中,我们的方法是将 Grails 后端的应用程序和 Flex 的前端分开。原因是我们有许多现成的 Flex 组件,使用纯 Web 技术重新实现需要花费太多时间,但这不是我的观点。
在 Grails 中创建 REST 后端非常快,因为视图会在适当的时候搭建起来,控制器很简单,并且域约束大大简化了输入验证。
这种拆分的缺点是域对象的定义必须在前端重复。您可能在前端包含或不包含对象验证,但如果省略它们,则会影响 UI 响应能力(AJAX 中对 REST 后端的请求调用实时验证以获取错误)。最后,我们的应用程序相当麻烦,因为修改后端的对象意味着前端的修改。此外,我们在前端和后端都进行验证,并且此代码不共享,因此它必须保持同步并在两个地方维护。
我们的应用程序的划分方式类似于两个完全不同的、不共享代码的 Grails 应用程序。一个适合您的情况的解决方案,但肯定不是您正在寻找的解决方案。
对于您的情况,我看到了两种可行的 Web 前端解决方案:
使用Groovy REST 客户端库直接从控制器获取和发回域对象。如果需要,将它们打包在反映域对象的命令对象中,以便您可以与后端共享验证代码。
创建某种REST GORM,用对 REST Web 服务的查询来替换 Hibernate。您可以查看GORM for Mongo 插件作为如何创建此类 GORM 替代品的示例。
我喜欢最后一个想法,它将是一个有用的公共插件。不幸的是,它还不存在。
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |