如何从远程应用程序中的Crafter CMS存储库访问数据?

时间:2017-11-19 06:17:52

标签: alfresco crafter-cms

我的用例是:

作者上传图像并输入有关图像(或博客)的元数据,例如Crafter CMS中的图像描述。管理员批准/发布图像。完成此操作后,未与Crafter CMS链接的单独开发的Java Web应用程序(面向公众)会看到这个新内容在最终用户与此Java Web应用程序交互时显示在分面搜索结果中。

如何使用Crafter CMS(社区版)实现上述目标?

Crafter CMS组件不能在远程Java应用程序(tomcat)中使用,它可以直接访问缓存内存中的内容(最初来自Crafter CMS)。这个远程Java应用程序有自己的基于elasticsearch的搜索解决方案。更好的方式来问这个问题Crafter CMS如何将内容存储在运行远程Java应用程序的同一服务器中的远程存储库中。

2 个答案:

答案 0 :(得分:3)

解决使用案例:Crafter CMS由几个子系统组成。作者将使用Crafter Studio(内容创作子系统)上传/分配元数据/预览/批准应用上下文中的图像(通过上下文预览)。面向公众的Java应用程序将基于Crafter Engine(基于Java / Spring的中间件子系统)构建,该子系统提供API以访问从Crafter Studio发布的内容。 Crafter Engine包含与Apache Solr的集成,用于分面搜索。

-

澄清混淆:Alfresco更好地被定性为企业内容管理(ECM)平台,用于管理所有类型的内容 - 文档,数字资产,公司记录以及Web内容。 Crafter另一方面是一个Web内容管理系统(传统上称为Web CMS),专门用于构建和管理数字体验应用程序的前端UI / UX和后端功能(现代网站,移动应用程序,AR / VR)经验,视频分享网站等)。 Crafter CMS最初是在Alfresco之上构建的一个Web CMS应用程序,因此两者之间紧密集成。

从Crafter CMS版本3开始,Git是主要的底层存储库。

Crafter仍然与Alfresco(通过CMIS)集成,以利用Alfresco的高级ECM功能来管理,发布和呈现Crafter应用程序中的任何形式的企业内容(文档,数字资产,视频等)。

答案 1 :(得分:2)

有两种架构可以满足这种需求。

  1. 将Crafter Studio中的内容部署到远程Crafter引擎(与远程应用程序位于同一位置)。然后让远程应用程序通过服务请求内容和资产。这是decoupled CMS architecture with a headless content delivery strategy

  2. 使用部署者将内容从Studio推送到远程应用程序(磁盘,数据库,无论您想要什么。)。部署者有一个简单的Java接口,允许您对已部署的变更集应采取的操作进行编码:

  3. 这是完整的部署者API: https://github.com/craftercms/deployer/tree/master/src/main/java/org/craftercms/deployer/api

    这是您要实现的界面: https://github.com/craftercms/deployer/blob/master/src/main/java/org/craftercms/deployer/api/DeploymentProcessor.java