Извлечение API в другое приложение heroku. Лучшая практика

Я планирую извлечь некоторые конечные точки API из приложения Rails, размещенного на Heroku, которое использует Postgres, в новое приложение Heroku. Каков целесообразный способ сделать это?

  1. Поделиться базой данных со вторым приложением и переключить конечные точки API в моем коде на стороне клиента?
  2. Резервное копирование и перенос данных в новую базу данных с помощью PG Backups?
  3. Другой?

Не уверен, что это вопрос, основанный на мнении, но я был бы признателен за некоторые комментарии.


person mehulkar    schedule 30.07.2013    source источник
comment
Во-первых, каков контекст нового приложения? Я бы поделился базой данных только в том случае, если ей нужно использовать одни и те же данные. Если вам нужно использовать схему, я бы просто импортировал текущую в новую БД и повторял оттуда   -  person Richard Peck    schedule 02.11.2013
comment
Он должен использовать те же данные.   -  person mehulkar    schedule 03.11.2013


Ответы (1)


Оба варианта, которые вы перечислили, кажутся вполне приемлемыми, но решение сильно зависит от характера API и того, что ваши потребители будут делать с ним.

Если API просто предоставляет данные (т. е. только для чтения, без конечных точек для обновления/создания новых данных), то я настоятельно рекомендую создать базу данных postgres «последователя» и читать запросы API от последователя. Две базы данных синхронизированы, и вы отделяете трафик/нагрузку 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

person changingrainbows    schedule 03.11.2013