0

我开始着手创建一个新的Rails 5 API,并且意识到我还需要某种内容管理“站点”。管理工具非常简单,只是用于非常基本的CRUD操作的UI。带有管理UI的Rails 5 API的传统体系结构是什么?

我有一种本能来创建两个单独的Rails应用程序 - 一个用于内容管理工具的Web应用程序和另一个用于API的Web应用程序。

这带来了共享数据模型的问题,这可以通过使用rails引擎解决,或者将模型包括为gem。

当我在研究解决方案时,我似乎观察到在API应用程序本身内包含内容管理部分的模式。这里涉及一些中间件包含和控制器继承,但获得内容管理用户界面在同一应用中作为API运行非常简单。它的工作量少得多,我没有看到很多规模问题,因为内容管理用户界面很少被利用,并且API是业务的核心。

这是公认的约定吗?由于网络搜索结果,我可能会受到偏见,但它似乎是最简单和最常见的方法。我打算有一个单独的服务器来访问内容管理员与访问API,这是我最初计划这是两个单独的应用程序。现在我想我只是被吸入到“微服务”的炒作中,而将API包含在内容管理界面中似乎更为传统。

另一方面,我读到的关于Rails引擎的所有内容都是3 - 4年过时的。几乎没有什么信息(我磕磕绊绊)在过去的一年左右,更具体地说,关于Rails 5的信息很少或没有。我想知道这种架构是否已经落在了前面。

对于Rails 5 API应用程序还需要一个内容管理UI吗?

回答

1

我之前使用过的方法是让api耗尽/app/controllers/api,然后安装ActiveAdmin gem,管理界面文件位于/app/admin。您可以设置路线以在https://api.yourapp.com/admin和API https://api.yourapp.com/api/v1/或类似处为管理界面提供服务。

我不知道这是多少公认的约定,但它工作正常。

+0

是的,这通常是它看起来像的,而且当我研究了基于引擎/组件的解决方案时,我已经知道'ActiveAdmin'本质上是一个引擎了。 – Todd