这是一个设计问题。我有一个具有多个用户类型的多部分应用程序。有一个与web服务交互的病人的用户客户端。web服务后面有一个API,将向机构“用户”公开,并为临床医生、研究人员和管理人员提供界面。
病人UI是Flex。应用程序的临床/管理部分是RoR。API是基于RoR/齿条的。web服务组件是Java。所有组件都访问同一个数据源。
这些组件作为单独的组件部署到它们自己的子域。作出这一决定是为了允许根据需要对各个组件进行缩放。
最初,决定将RoR应用程序的代码从RoR API中分离出来。
作出这一决定是为了安全和使各组成部分集中于具体任务。
随着时间的推移,必然会有重叠,我怀疑我决定保持代码完全独立。我注意到代码是从管理端被解除,修改和使用的API。在这种情况下,我一直在考虑合并基于Ruby的仓库。
我感兴趣的想法和洞察力,以及你的想法背后的推理。
谢谢。
发布于 2011-01-17 16:55:58
我不能100%肯定我是否正确地理解了您的问题,但听起来您正在构建一个API,该API公开了一堆Web (我将假设您使用的是RESTFul--就像您使用Java和RoR一样),它有多个客户端内置于各种技术中。听起来我完全可以接受!
我认为您确实希望将RoR web应用程序与RoR API分开。为什么?因为RoR网络应用并不是你唯一的客户端。因此,您需要使用web服务在任何客户端和API之间进行通信。保持RoR Web应用程序的分离将帮助您设计一个更干净的RESTFul类API,现在更多的努力,但当用户想要iPad客户端时,会有更多的回报;)或者您的老板说我们要为API迁移到F#!
https://softwareengineering.stackexchange.com/questions/37565
复制相似问题