系统架构,将两个应用程序与API集成

时间:2010-09-05 17:47:36

标签: ruby-on-rails api architecture

我目前正面临实施挑战,它基本上由两个不同的rails应用程序组成。

一个rails应用程序(应用程序A)只提供JSON响应,在这种情况下记录一种特定食物成分的营养数据。

另一个应用程序(应用程序B)Rails还为用户提供了一个前端,用于查看成分并将其与应用程序A提供的搜索结果进行匹配。

我们这样做的原因是因为我们希望最终将app A变成一个可公开访问的营养数据API,所以我们想要从网络App B中获取负载,我们可以让它独立。

我想我想让你们了解一下如何处理两个需要以这种方式紧密集成的系统。

2 个答案:

答案 0 :(得分:1)

我会创建一个新的Rails 3应用程序,因为Rails 3与Rack紧密集成。 Rack允许我们在请求处理链中插入各种适配器。这些可以帮助我们区分各种请求(标准请求,API请求)。

对于应用程序A,我会使用轻量级的东西,比如Sinatra(甚至是我自己从头开始构建的Rack适配器)。这是因为API通常不会使用Rails的任何额外超级功能及其魔力。

因此,严格地说,我将在Rails 3上只创建一个应用程序(应用程序B),它将具有一种用于API处理的子模块。因此,他们将彼此绑定。

答案 1 :(得分:1)

无论App B是内部应用程序还是外部应用程序,App A都有责任公开营养数据。这是你不想复制的东西。

内部App B应使用与外部应用程序相同的机制来访问此公开的函数。将App B视为使用API​​的第一个客户端。