Headless Drupal——你需要知道的一切指南
已发表: 2020-07-24今天,用户体验 (UX) 不仅仅是用户在与您的网站交互时的感受。 在这个界面和 API 快速增长的世界中,内容在为您的用户提供卓越的 UX 方面发挥着至高无上的作用。 为了跟上步伐,您需要采用热销、快速发展的前端技术,如 Angular JS、React JS 等,它们可以以类似应用程序的速度交付您的内容。
Headless Drupal(或解耦 Drupal)就是这样一种方法,因其提供出色数字体验的创新能力而广受欢迎。 像 Weather.com、The Tonight Show、Great Wolf Resorts、Warner Music Group 等大公司已经采取了无头 Drupal 路线,为他们的客户提供交互式和独特的前端设计和快速加载的网站。 由于 Drupal 8 对 API 优先架构的承诺,内容可以在任何地方使用和显示。
什么是无头 CMS?

在这个数字世界中,是否去无头是一个相当棘手的决定。 那么关于无头的整个嗡嗡声是什么? 简单地说,在无头 CMS 架构中,CMS 的前端(内容的消费者)与后端(内容的提供者)分离。 这不仅使您的内容能够在任何地方交付,还使您能够利用提供无与伦比的用户体验的最新前端技术。
什么是无头/解耦 Drupal?
通常,Drupal 网站旨在处理多任务。 这意味着,Drupal 管理两者——后端内容管理以及内容的前端呈现。 毫无疑问,Drupal CMS 本身可以为最终用户提供丰富的用户体验,但是当归结为对请求的即时响应、在不同界面中无缝提供内容时,它确实存在不足。 在解耦的 Drupal 架构中,不是使用 Drupal 的主题层,而是使用客户端框架,如 AngularJS、React 或 Backbone.JS。 用户请求不必一直由服务器处理,这可以显着提高 Drupal 网站的速度和用户体验。
Drupal 8 的 API 优先架构迈出了第一步,在核心(Drupal 8.0)中引入了 REST API。 但是,它也带来了一系列挑战(设置和使用)。 从那时起,在提供更好的 RESTful 和非 RESTful Web 服务(如 JSON-API 和 GraphQL)方面进行了许多改进。
从技术上讲,无头 Drupal 网站以 HTTP/JSON 格式发送数据。 一个强大的前端 UI 框架呈现这些数据并提供网页。

分类分离的 Drupal
在传统的 Drupal CMS 架构中,浏览器调用由 PHP 逻辑处理的请求,然后呈现 HTML 并将其发送回浏览器。 当然,开发人员可以嵌入 Javascript 以进行一些客户端改进,但这可能导致不同模块使用不同客户端框架的情况。 从而使其成为一个极其复杂的系统。
渐进解耦
如果您希望保留您的 Drupal Theme 层,同时又能够向浏览器提供即时响应,那么渐进式解耦方法是您最好的选择。 在这里你可以吃蛋糕也可以吃! 初始应用程序状态由 Drupal 呈现,然后可由客户端编码进行操作。 模块可以用 PHP 或 Javascript 编写,同时您可以利用 Drupal 的强大性能优势。
此版本的解耦 Drupal 允许上下文化界面、内容工作流、站点预览和其他功能保持可用并与 Drupal 整体集成。 虽然内容编辑器和站点组装者对这个分离的 Drupal 版本感到宾至如归,但它也允许前端开发人员追求自己的速度,同时通过将页面的一部分专用于 JavaScript 框架来保持站点组装者畅通无阻。
简而言之,逐步解耦的 Drupal 提供了一种方法,可以很好地在布局管理等编辑需求和开发人员希望使用更多 JavaScript 之间取得完美平衡。

说明这些示例的渐进式去耦频谱的图表 – Source-Acquia

完全解耦架构
然后是完全解耦——Drupal 的表示层完全被客户端框架取代。 此版本的解耦 CMS 允许不间断的工作流,因为客户端框架还充当服务器端预渲染器。 Drupal CMS 纯粹用作处理所有后台爵士乐的内容存储库。 当您完全忽略 Drupal 的主题功能时,您也就放弃了 Drupal 提供的一些有效的性能优势。 此外,还需要进行大量重建以完全分离 Drupal 网站的管理界面和前端。 在服务器端使用 Javascript 也会使基础设施要求复杂化。
近年来,随着 JavaScript 的增长没有放缓的迹象,完全解耦的 Drupal 架构获得了更多关注,但它涉及内容结构与其表示之间的关注点分离。 简而言之,创建一个完全解耦的 Drupal 系统就像将您的 Web 体验视为需要提供内容的单独应用程序。
哪种解耦 Drupal 解决方案最适合您?
传统上,Drupal CMS 旨在同时完成内容管理和呈现整个网站的前端。 压力很大,你不觉得吗? Drupal 专家认为,Drupal 的优势在于其后端的强大功能和灵活性,它首先需要面向服务而不是面向 HTML。 解耦 Drupal 意味着让其他系统管理前端,而 Drupal 负责后端系统。 你问,为什么解耦 Drupal 是个好主意?
如果您想采用 Drupal 无法提供的尖端和现代前端技术,您将需要一个强大的前端框架,如 React JS 或 Angular JS。 使用无头 Drupal 方法,您可以拥有所有这些,并且仍然保持强大的后端 Drupal CMS。
- 使用 Headless Drupal 架构,您可以“一次编写,随处发布”。 该系统允许内容编辑者、营销人员和企业主创建一次内容并无缝地将其传送到多个界面。
- 使用解耦 CMS,将前端与后端内容管理系统分离将使 Drupal 内容模型具有更大的灵活性和效率。 就像委派工作如何减少您的工作量并提高生产力一样。
- 分层架构促进了更安全的系统。 站点管理员可以限制对基础架构不同区域的访问。
- Headless Drupal 允许前端开发人员完全控制网站的呈现、UI 设计和 UX。 出色的客户端框架和经验丰富的前端开发人员的结合可以为您提供一个具有丰富、更快、类似应用程序的用户体验和无缝交互的网站。
- 使用无头 Drupal 模型可以更轻松、更高效地与第三方应用程序集成。
- 前端和后端开发人员都可以独立工作,从而可以高效快速地交付项目。
- 如果您想重新设计您的网站,您将不必重新实现您的 Drupal CMS。 同样,无需更改前端即可完成后端系统的改造。
无头 Drupal 适合所有人吗?
尽管解耦 Drupal 可以帮助您实现不间断和类似应用程序的用户体验的目标,但它可能并不适合所有人。 这就是为什么——
- 像新闻网站或博客这样的网站,不需要太多的用户交互,将不会从分离他们的 Drupal 网站中受益。
- 当您为您的网站选择完全解耦的 Drupal 架构时,您将放弃 Drupal 主题层附带的一些顶级(和免费)功能,例如块放置、布局和显示管理、内容预览、UI 本地化、跨站点脚本(XSS)等安全特性。其中一些不能被客户端框架复制。
- 如果预算是一个问题,你需要记住你必须为有经验的前端开发人员支付的价格。 还有从头开始重建缺失的(否则可以免费获得)Drupal 功能的成本。
谁使用无头 Drupal?
许多顶级企业都采用了无头 Drupal 方法并成功地做到了! 他们的网站加载速度快,并为所有设备和界面的用户提供交互式体验。 一些例子是 -
- 吉米法伦今晚秀– 使用 Backbone.js 和 Node.js 作为前端
- Weather[dot]com – 使用 Angular.js 作为前端
- Great Wolf Resorts – 使用 CoffeeScript 和 Spine 框架
- EC Red Bull Salzburg – 使用 Angular.js 作为前端
- Warner Music Group – 使用 Angular.js 作为前端
……这里的清单上还有更多。
