2011-06-02 30 views
5

我现在有一个非常标准的Rails应用程序:Heroku/PostgreSQL后端,用户直接到我的网站更新数据,没有移动应用程序或任何东西。我们将开始将技术授权给其他公司,以便接口的不同版本位于company1.mywebsite.com,company2.mywebsite.com等,其中所有这些接口共享相同的数据库。如何为我的Rails应用程序构建API,以便多个站点可以共享一个数据库?

我想要一些关于如何去建设这个建议。我是否为company1,company2等创建了单独的Rails应用程序(包含大量冗余代码),然后使用API​​密钥将它们设置为使用其RESTful路由查询我的主应用程序?

任何指导我的指南都会很棒。

+1

这听起来像你想在你的应用某种形式多租户的?你能否告诉我们你的工作数据类型?你有可能创建一个拥有子域名的公司对象,并且是与该公司关联的数据库中其余对象的父对象? – 2011-06-02 16:03:28

+0

数据大多只是文本,应用程序是一个论坛。你说的话对我来说很有意义 - 我想问题是如何为不同的公司接口定制视图?我想如果user.companyname ==“TKTK”,它可能会变得很庞大,显示这个,否则,显示这个 – kateray 2011-06-02 16:13:15

+1

我们有类似的设置,但我们为不同的公司使用不同的域名。我们在应用程序控制器中使用域名过滤之前初始化当前公司,并且有一个配置文件,它定义了哪个公司使用哪个主题。我们使用less.js来定义大多数可重用的常用样式,并在小型主题文件中抽象出不同之处。为了获得当前公司的职位,我们做一些事情,如current_company.posts – rubish 2011-06-02 16:23:52

回答

2

我推荐你使用Paul Dix编写的Ruby和Rails面向服务的设计。它有很多关于你想要构建的系统的信息。

要回答你的问题:

  • 建立一个API服务器。它提供了一个JSON - 例如 - RESTful接口。

    api.mydomain/client1/users.json 
    
  • 构建一个前端服务器。它使用API​​服务 - 例如使用typhoeus - 并提供最终页面。它使用子域名或域名来识别不同的客户端。

    client1.mydomain/users 
    
1

我们有一个类似的“平台”。

我们做了什么:

  1. 构建主API的应用程序(REST +推送)
  2. 打造核心插件导轨具有所有的共享代码
  3. 建立一个独立的Rails应用程序为每个客户端它具有所有客户端特定的代码

我们现在使用这个设置3年了,我对它很满意。

相关问题