![](https://www.codeart.dk/contentassets/8b6819e914974ad5aa472a0064ff3777/e02f681e-f548-4ab0-bfb1-ec2667227d18.jpg?width=1200)
欢迎来到这个新的多篇文章系列,在这里您可以跟随我进行另一项疯狂的实验:我们能否让我们心爱的 Alloy 网站在 Optimizely Graph(和 SaaS CMS)之上作为无头网站运行,使用 MVC、Razor Pages 和 Blazor 组件的混合 – 我们能否让开发人员和编辑者都拥有我们在经典 Optimizely/Episerver 网站中习惯的体验?让我们来一探究竟!
现在,那些经常关注这个博客的人可能已经注意到,当谈到 Optimizely CMS 上的无头网站概念时,我有一定的怀疑态度。虽然我仍然坚持这一点,但肯定也有正当的商业(和技术)原因想要将内容管理与演示和网站逻辑分离开来。
在这些情况下,我认为关键是提出一种架构,尽可能轻松地提供良好的开发人员体验,并尽量减少需要维护的额外代码量。
在这方面,(相对)新的 Optimizely Content Graph 提供了很大的帮助。它既可以用于常规的 Optimizely CMS 网站(在 DXP 上,在撰写本文时,本地定价尚未准备好),也可以内置于 SaaS CMS 产品中。您甚至可以向其中添加自己的自定义外部内容(但我将留到另一篇博客中再讲)。
它最酷的地方在于,它既是一个功能齐全的出色搜索引擎,又是一个高效的内容查询和导航提供程序,还是一个强大的内容 API(基本上取代了内容交付 API)。而且它使用 GraphQL,因此所有平台上都有很多工具可以开始使用它。哦 – 还有我最喜欢的细节之一 – 它支持 webhook(但我们也把它留到以后再说)。
你可以把它想象成有点像 Find – 它是一种托管的 SaaS 服务,内容会从 CMS 不断推送 – 然后你可以使用 GraphQL 查询它。
但我离题了——所以让我们回到本博客系列的主题:让我们重新实现老旧的 Alloy——但作为无头解决方案,以 Graph 作为 API,以 SaaS CMS 作为后端。如果我在此过程中碰巧制作了一些可能对其他人有益的 nuget 包和开源工具,那就这样吧 🙂
让我们开始使用 SaaS CMS 上的内容和内容类型
作为 OMVP,我很幸运地获得了几个免费的 SaaS CMS 实例来试用。当然,最好的是它们每个都带有我自己可以使用的 Graph 索引。那么 – 让我们开始吧。
我做的第一件事就是创建一个全新的本地合金(像你一样做)。然后我直接进入管理模式的导出区域。
导入和导出包是一项老技术而且相当棘手,所以我把它分解成几个不同的包。
首先是包含内容类型和其他元信息的包,然后是包含页面树的包,最后是包含块树结构的包(“适用于所有网站”)。然后只需一次导入一个包(出现警告时我闭上了眼睛),调整一些小细节,然后就完成了。
正如您所见,我们有一个良好的开端 – 所有类型都在那里,当我切换到编辑模式时,似乎内容也在那里:
最后,正如您在下面看到的 – 内容已自动推送到内容图,因此我们可以开始查询它。
使用 Graph
从内容方面来说,这是一个很好的开始。在下一篇文章中,我们将进一步探讨在“头部”方面使用 Graph 需要做些什么。
1718392052
#在 #Optimizely #Graph #和 #SaaS #CMS #上构建 #.NET #Core #无头网站
2024-06-14 14:59:16