在现代化的 Web 应用中,前端应用已经成为了用户与服务器之间最重要的交互界面。而为了让前端应用更易用、更可靠,在与后端服务器交互时,需要从服务器上拉去数据,并将其展示在用户界面上。而内容管理系统(Content Management System, CMS)则是一种以管理、更新、编辑和构建各种类型的内容为主的应用平台。
传统的 CMS 系统一般都是采用"传统与前端渲染混合 "的方式,即 CMS 系统有一个前端渲染程序,但其只负责输出 HTML,CSS, JavaScript 文件,而内容和数据都存储在 CMS 系统中。 这种方式会造成前端与 CMS 的耦合性很高,导致前端员工需要大量重复的操作,比如手动填充内容和修改数据。另外,这种方式也无法支持多设备响应、应用程序设计以及动态文档网站等现代应用的需求。这时就需要引入 Headless CMS 的概念。
什么是 Headless CMS?
Headless CMS,又称"无头内容管理系统",是一种新的前端技术方案。实际上, Headless CMS 的概念就是将原本的 CMS 的前端和后端分开,只保留后端管理界面,将所有的数据和内容都以一种统一的格式通过 API 返回给前端。
Headless CMS 的优点有很多,其中最重要的是系统的可扩展性以及可以实现快速应用程序和网站的开发和管理。此外,由于无头 CMS 只提供API,不再负责渲染一整个页面,所以对于移动或 React 等前端架构构建的 Web 应用而言,它们能够通过调用 Headless CMS 的 API,自由地构建自己的页面和功能。
此外, Headless CMS 还能够实现数据的灵活处理以及快速的响应,让开发者选择更容易且可靠的方法来管理和维护内容。
如何实现 Headless CMS?
Headless CMS 的实现相对传统的 CMS 难度较大,需要更多的工作量和精细的数据结构来保证运行效率和可靠性。让我们来看一个元素机器(Contentful)的示例来了解一下如何实现 Headless CMS:
设置 API 访问权限
首先,需要设置 API 访问权限。使用元素机器作为 Headless CMS 的例子,必须要设置 API 访问令牌。令牌应该包含组织和作用域属性。
const organizationName = "" // provide Organization ID const authToken = "" // provide Personal Access Token
要设置正确的 API 权限,需要使用元素机器 API 模块提供的方法。
定义数集(Data Set),类型及关系
元素机器的数集是根据数据类型定义的,每个类型都有自己的 API 端点。这样,开发者就可以根据需要获取数据类型,通过 API 很容易地找到所需数据,而不需要处理不必要的信息。
定义数据类型(entity)及其对应 API 端点:
-- -------------------- ---- ------- ----- ---- - - ------------ -------------- -------------- ------------------------------------------------------------------------------------ --------------------- ---------------------------------------------------------------------------------------- ----- - --------- ------- ------- - - ----- -------- --- -------- ---------- ----------- -- - ----- ---------- --- ---------- ---------- ---------- -- - ----- --------- --- --------- ---------- ------------ ----------------- -------- - - - -
定义模型之间的关系(relationship):
-- -------------------- ---- ------- ----- ------------ - - ------------ --------- -- ---- -- --- ------- ---- -- --- --- ------ ------- ------ -- -- ----- ---- -- -------- ------ -------- ----- -- -- -- ---- -- -------- --- ------- ------------ -------- ------- -- ---- ----- --- -------- ------ ---- --- ------ ----- ----- ---------------- ------ ----------------- ------ ------ -------------------- -- -
获取数据
获取数据的代码如下,它在这里简略地进行了解释:
-- -------------------- ---- ------- -- ---- ---- ---- ----- -- ------- -- --- --- -- ----- ----- ------ -- -------- - ------ ----- -- --- -- --------------------------------------------- - -------- - ---------------- ------- -------------- --------------- ------------------ - ---------------- ---------- - -- --- -------- ---- ------- - ---- -- ----- ----- ----- ------- - -------------------- ------ -------- ----------------- ------- - ------------------- ---
展示数据
展示数据的代码如下:
-- -------------------- ---- ------- -------------------------- - ------ --------- --------- - ---- ------------------ ------ ---------- ------- ---- ---------------------------- ------ - --
总结
Headless CMS 是一种新的前端技术方案,它与传统的 CMS 相比,更加灵活可扩展,有助于应用程序和网站的开发和管理。如果想要实现 Headless CMS,需要定义数集(Data Set)、数据类型及其与其他元素的关系,并使用 API 来访问和拉去数据。在实现了 Headless CMS 之后,通过调用 API,前端开发人员可以自由地构建自己的页面和功能,以及处理和维护文本数据和内容。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64583847968c7c53b0aa334c