ruby-on-rails - 是否使用 API

标签 ruby-on-rails ruby performance json api

<分区>

我的公司有一个巨大的数据库,该数据库接收来自多个来源的(许多)事件,用于监控和报告目的。到目前为止,数据中的每个新仪表板或图形都是一个新的 Rails 应用程序,在巨大的数据库中有额外的表,并且可以完全访问数据库内容。

最近,有一个想法让外部(不是我们公司,而是姊妹公司)客户访问我们的数据,并且决定我们应该公开一个只读的 RESTful API 来查询我们的数据。

我的观点是 - 我们是否也应该为我们的自己的项目使用 API?访问 RESTful API 而不是直接访问数据库是否有点矫枉过正,即使对于“本地”项目也是如此?我认为它会在统一我们团队对数据的访问方面得到返回——但是额外的往返是否值得? RESTful API 能否满足每秒运行 20 次左右查询并通过 JSON 公开结果的需求?

感谢任何输入!

最佳答案

我认为关于一致性有很多要说的。如果您为您的客户提供 API,在我看来,通过使用相同的 API,您会更好地理解它。为您的客户支持它,您将定期对其进行测试(超出回归测试),并且您发送的消息表明它足以供您使用,因此对您的客户来说应该没问题。

通过将所有内容隐藏在 API 后面,您可以自由更改数据库表示,而不必更改两者 API 接口(interface)代码(通过 API 呈现数据)和数据库访问代码在您的内部应用程序中。你只会改变前者。

最后,此类性能问题实际上只能通过尝试和测量来解决。也许值得将原型(prototype) API 系统组合在一起并在负载下研究它?

关于ruby-on-rails - 是否使用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1232082/

相关文章:

ruby-on-rails - 如何使用带有 S3 的 Rails Active Storage 检索附件 url

ruby-on-rails - rails 错误?除非 parent 修改(嵌套形式),否则孙子不保存

ruby - 在具有变量名称的模块中定义类方法

php - 性能与模块化 : Integrate JS into PHP or separate custom. js

performance - zsh使用prezto启动提示极慢

c# - 使用 LINQ to SQL 从数据库进行最佳 Count() 操作

ruby-on-rails - 格式化种子文件

ruby-on-rails - 找不到 gem bundler Ruby

ruby-on-rails - 处理 Rails 3.1 应用程序中不存在的路由

ruby - 如何进行 Mechanize 多重搜索?