【问题标题】:Rails Model to use API instead of DatabaseRails 模型使用 API 而不是数据库
【发布时间】:2012-08-24 17:03:50
【问题描述】:

我正在重构一个当前使用数据库和 ActiveRecord 的 Rails 应用程序,以便它使用 JSON API (Sinatra) 而不是数据库。

重构模型的最佳方法是什么? API 将返回所有与数据库相同的信息。事实上,它是同一个数据库,但为了可扩展性和需要访问数据的多个应用程序,我们需要将其转换为 API。理想情况下,只有模型需要更改,理想情况下我可以在 rails 应用程序中保留一些验证。

如何更改模型,以便它们通过 API 调用而不是 ActiveRecord 数据库调用来检索和保存实例?

【问题讨论】:

  • 如果它是同一个数据库,为什么你的应用程序和 api 服务器不能同时连接到它?可能是同一笔交易可以救你
  • 从技术上讲可以,但让两个应用程序影响同一个数据库是不好的做法,尤其是当其中一个应用程序的迁移会影响另一个时。
  • 是的,这肯定会是一个问题,但我认为即使您尝试覆盖基本的活动记录功能,这也会是一帆风顺的。可能将应用程序迁移到 api 也可能会消耗等量的时间。只是一个松散的预测。

标签: ruby-on-rails-3 api single-responsibility-principle


【解决方案1】:

我想你正在寻找类似ActiveResource的东西

【讨论】:

  • 这就是我想要的
【解决方案2】:

对于 Rails 4,请查看以下内容:

https://github.com/whichdigital/active-rest-client

此 gem 用于以 ActiveRecord 样式访问 REST 服务。 ActiveResource 已经为此存在,但它在 资源命名不遵循 Rails 约定,它没有 内置缓存,一般来说不够灵活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 2020-07-13
    • 1970-01-01
    相关资源
    最近更新 更多