0

对于我现在正在开发的企业应用程序框架,我正在寻找一种从开发人员的角度巧妙而简单地管理资产的方法。从本质上讲,该场景是通过 REST API 访问(例如,如果我想要要访问完整的应用程序“x”元数据,我可以导航到 /applications/x 并根据页面和每个页面的组件获取该应用程序的表示)。

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

Someone would argue that code could be added as a blob to DB, but i still want to use a versioning system like SVN or GIT, so that is not an option. Also, working with code that is on a file system is much more simpler that code on a database.

So, my question is if you can provide me with some ideas, approaches, etc. to know how could be implemented a solution for managing these kind of assets that lives both on a database and on a file system, and should be consumed / modified / created both from a file system and a REST api.

4

1 回答 1

0

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

为了让您的 REST api 知道文件系统已更改,首先我将检查版本控制系统在某些事情发生时(即提交的文件)必须发布事件的可能性。例如,Subversion 似乎支持可以运行与您的 REST api 联系的 java 实用程序的钩子。

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

我希望这会有所帮助

于 2013-07-28T09:16:01.527 回答