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