将我的Rails Web应用程序数据库连接到Heroku上的Rails API

时间:2015-10-15 20:49:19

标签: ruby-on-rails json api heroku

我觉得我的问题通过其他一些问题得到了部分回答,但我无法将所有问题整理在一起。

基本上,我想构建一个相当简单的网络应用程序,但也能够相当轻松地构建一个移动应用程序。根据我的研究,最佳实践是构建RESTful JSON API,然后将该API用于我的Web应用程序和移动应用程序。

我已经开始为我的JSON API开发身份验证(使用:http://lucatironi.net/tutorial/2015/08/23/rails_api_authentication_warden/)并且我已经在Heroku上了解它。现在,对于我的网络应用,我使用HTTParty来使用该API,并且我让JSON得到了很好的回复。但是,我不太确定如何处理数据库。我的第一个想法是,我可能需要通过它自己的API调用来访问API的数据库,但这看起来非常复杂(只是想到必须为User.find_by_<every attribute>创建函数让我感到害怕)。另一个想法是让我的网络应用程序使用API​​应用程序的数据库。但是,如果应用程序在Heroku上,我无法找到有关如何执行此操作的任何信息。

所以基本上,我想知道最好的方法是什么。当然,有一个标准是每个使用API​​的大型或小型Web应用程序。我真的很惊讶,如今这么流行的东西很难找到好的答案。或者我这样做是错的?任何指针都将非常感激。

1 个答案:

答案 0 :(得分:1)

数据库是Heroku用语中的附加组件。

使用heroku addons获取应用的附加组件列表。

$ heroku addons -a appname

Add-on                                    Plan       Price
────────────────────────────────────────  ─────────  ─────
heroku-postgresql (relaxing-purely-8366)  hobby-dev  free 
 └─ as DATABASE    

首先,您可能希望删除附加到前端应用程序的数据库:

heroku addons:destroy fat-samurai-1234

然后找到附加到API应用程序的数据库加载项的名称,并将加载项附加到您的前端应用程序。

heroku addons:attach shining-sushi-1234 -a sushi.

关于哪种方法合法,这是一个讨论的问题。今天的许多应用程序都使用单页面体系结构,其中整个应用程序是在前端创建的 - 使用javascript。所以你的应用程序只是消耗你的REST API。流行的框架是Ember.js,Bootstrap和Angular。

另一种方法是创建一个经典的服务器端应用程序 - 虽然可以创建一个使用REST API的应用程序,但是会有很大的开销,因此直接连接到数据库会更高效。 / p>