首页 > 解决方案 > Rails 6 用于“沙盒”模式的多个数据库

问题描述

我们正在开发一个 Rails 应用程序,它将为我们的客户提供一个 API。假设使用此 API,他们可以创建Puppies. 许多提供 API 的服务都包含“沙盒”模式,例如,它们可以在其中创建虚假资源以确保它们的集成是正确的。我们想在我们的 API 中包含一个“沙盒”模式。

我知道向 API 添加沙盒模式的一个简单解决方案是创建一个“沙盒”环境(类似于生产,但没有一些仅应在实际生产事务中发生的业务逻辑)并要求我们的客户调用沙盒进行沙盒 API 调用时的环境。然而,由于 Rails 6 现在包括对多个数据库的支持,我们也在考虑向模型添加一个辅助数据库来Puppy处理沙盒调用(即在“沙盒”模式下写入和读取记录)。我们认为,理论上我们可以通过创建一个自定义DatabaseSelector::Resolver来检查会话并决定它是使用“沙盒”数据库还是主数据库,例如传递给 API 调用的凭据是“沙盒”还是“沙盒”。

您认为这种方法可行吗?与其他方法相比,这种方法的优缺点是什么?(例如沙箱环境,添加Puppy#is_sandbox列和范围记录等)

标签: ruby-on-railssandboxmultiple-databasesruby-on-rails-6

解决方案


推荐阅读