我计划从Heroku上托管的Rails应用程序中提取一些API端点,这些应用程序将Postgres用于新的Heroku应用程序。有什么可行的方法呢?
不确定这是否是基于意见的问题,但我很欣赏一些意见。
答案 0 :(得分:0)
您列出的两个选项似乎都完全可以接受,但决定高度依赖于API的性质以及您的消费者将使用它做什么。
如果API仅提供数据(即只读,没有用于更新/创建新数据的端点),那么我强烈建议您创建一个“关注者”postgres数据库,并从关注者那里读取您的API请求。这两个dbs是同步的,您可以将API流量/负载与常规应用流量/负载分开。
Heroku关于设立追随者的说明如下:
https://devcenter.heroku.com/articles/heroku-postgres-follower-databases
如果您的API涉及数据更新/写入,那么从同一个数据库克隆db(vs)服务API和应用程序的决定完全取决于流量和管理两个数据库并使它们保持同步的容忍度。
另外,对于您的API端点,我始终建议使用ActiveModelSerializers或JBuilder来传递数据。
https://github.com/rails/jbuilder
https://github.com/rails-api/active_model_serializers