通过API管理内容,直接从文件系统管理内容

时间:2013-07-28 04:41:43

标签: java api rest version-control content-management-system

对于我正在进行的企业应用程序框架,我正在寻找一种从开发人员的角度巧妙而简单地管理资产的方法。 本质上,该场景是通过REST API访问的关系数据库中持久存储的应用程序元数据信息之一(即:应用程序的名称,不同的页面,该应用程序的角色等)(例如,如果我想要的话)要访问完整的应用程序“x”元数据,我可以导航到/ applications / x并根据每个页面的页面和组件获取该应用程序的表示。)

除了我们称之为“组件”之外没有代码(您可以将它们视为可重用的css + js + html的捆绑包)。 现在,问题是:我在数据库上有组件的元数据(例如,组件ID,组件描述等),但组件代码在版本控制系统(在我们的例子中为SVN)下的文件系统上。意味着组件信息都在DB和文件系统上。 因此,如果在一个例子中,一些开发人员创建了一个组件(即,将代码提交到文件系统上持久存储组件的特定文件夹),我需要让数据库知道有一个新组件,因此应该更新它。 另一方面,如果API用于删除特定组件(类似DELETE / components / componentId1),它也会删除文件系统上的代码。

有人会争辩说代码可以作为blob添加到DB中,但我仍然想使用SVN或GIT等版本控制系统,所以这不是一个选项。此外,使用文件系统上的代码比数据库上的代码更简单。

所以,我的问题是,你是否可以向我提供一些想法,方法等,以了解如何实现管理这些资产的解决方案,这些资产同时存在于数据库和文件系统中,应该是从文件系统和REST api中消费/修改/创建。

1 个答案:

答案 0 :(得分:0)

如果您的要求是从文件系统和REST api管理资源,那么首先想到的是这两个系统应该以某种方式进行通信。

为了让您的REST api知道文件系统发生了变化,首先我将研究版本控制系统在发生某些事情时(即提交的文件)发布事件的可能性。例如,似乎Subversion支持hooks,它可以运行一个可以与您的REST api联系的java实用程序。

对于通信的另一方(REST api通知文件系统),您可能需要使用版本控制系统的API,以便用户在您的应用程序中执行操作以对文件系统执行相应的操作。在这里,您可以有更多选项,因为所有版本控制系统都具有允许与IDE环境集成的API,例如Eclipse插件的Subversion或谷歌提出的另一种可能性是SVNKit

我希望有帮助