0

Я собирался запустить новый Rails 5 API и понял, что мне также нужен «сайт» администрирования контента. Инструмент администрирования очень прост, просто пользовательский интерфейс для очень простых операций CRUD.Что такое обычная архитектура для Rails 5 API с административным интерфейсом?

У меня есть интуиция для создания двух отдельных приложений Rails - одного веб-приложения для инструмента администрирования контента и другого веб-приложения для API.

В результате возникает проблема с совместным использованием моделей данных, которые разрешимы с помощью рельсовых движков или включая модели в качестве драгоценного камня.

Поскольку я изучал решения, я, казалось, наблюдал за тем, как включать часть контента-администратора в самом API-приложении. В это есть некоторое промежуточное ПО и наследование контроллеров, но его довольно просто, чтобы пользовательский интерфейс Content-admin запускался в том же приложении, что и API. Его гораздо меньше работы, и я не вижу большой проблемы с масштабом, поскольку пользовательский интерфейс content-admin легко используется, и API является ядром бизнеса.

Это общепринятое соглашение? Я могу получить смещение из-за результатов веб-поиска, но это похоже на самый простой и наиболее распространенный подход. Я планирую иметь отдельный сервер для доступа к контенту-админу против доступа к API, что и привело меня к первоначальному планированию этого как двух отдельных приложений. Теперь я думаю, что я просто втянулся в шумиху «микросервисов», и кажется более привычным просто включать интерфейс Content-admin с моим API-приложением.

С другой стороны, все, что я читал о двигателях Rails, 3-4 года устарело. В течение последнего года или около того мало информации (что я спотыкаюсь), а точнее, мало-кратной информации о Rails 5. Мне интересно, упала ли эта архитектура на обочине.

Существует ли типичное соглашение для приложений API Rails 5, которым также нужен интерфейс управления контентом?

ответ

1

Подход, который я использовал ранее, заключается в том, что api заканчивается /app/controllers/api, а затем установлен жук ActiveAdmin с файлами интерфейса администратора в /app/admin. Вы можете настроить маршруты для обслуживания интерфейса администратора по адресу https://api.yourapp.com/admin и API по адресу https://api.yourapp.com/api/v1/ или аналогичным.

Я не знаю, сколько из принятого соглашения это, но оно отлично работает.

+0

Да, это, как правило, то, что кажется, и, поскольку Ive исследовал решения на основе двигателя и компонентов, Ive узнал «ActiveAdmin» как по существу двигатель. – Todd