【问题标题】:Heroku: encapsulate data access in an APIHeroku:将数据访问封装在 API 中
【发布时间】:2012-06-19 10:08:06
【问题描述】:

我有一个带有 PostgreSQL 数据库的 Heroku 应用程序。现在我想有一个单独的进程,可能在另一台机器上,来访问数据库。 Herkou 网站上的建议其实是我自己想做的:

No, connecting to your database from machines outside of Heroku is not supported.
We recommend that you encapsulate data access in an API to manipulate it.

但我不确定如何做到最好。我希望能够将一些 JSON 发送到 API 并根据该请求取回 JSON。就像 “给我所有针对一组给定 userIds 过期的帖子”“如果他们的帖子包含任何给定的单词,则更新所有用户以暂停”微博应用示例。

实现这一目标的最佳方法是什么?我可以编写一个可以通过 TCP 访问并接受 JSON 输入的额外 ruby​​ 程序吗? Heroku甚至可能吗?还是我必须以某种方式将 API 集成到我的 rails 应用程序中?怎么样?

感谢任何想法, 汤姆

【问题讨论】:

    标签: ruby-on-rails ruby database api heroku


    【解决方案1】:

    您必须将 API 集成到您的 Rails 应用程序中,有很多解决方案,其中之一是使用专门用于 API 构建的工具,如 Grape 并将其安装到您的 Rails 应用程序中。这样,您就可以运行 Rails 应用程序和 API,两者共享相同的代码库。

    【讨论】:

    • 谢谢伙计,我去看看。我本来希望有一个独立的 API,但我猜 Heroku 不可能做到这一点?
    • 独立API是什么意思?葡萄应用程序将安装在您的 Rails 应用程序的单独路径中,它们不会相互冲突,您甚至可以共享您的模型。
    • 我希望它尽可能精简,没有所有的轨道开销。就像对可以访问 Heroku 数据库但只为调用者提供有限选项的 ruby​​ 应用程序的普通 TCP 调用一样。我不需要共享模型。这个想法是返回纯数据,如整数值列表。客户端是一个节点应用程序,它不知道复杂的模型,但只能快速计算和分发结果。我会对基准感兴趣...
    猜你喜欢
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 2020-07-22
    • 2011-10-13
    相关资源
    最近更新 更多