如果我正确理解,“解耦”内容管理系统意味着将后端与前端分离(在同一个“程序”下每个模块都有两个“模块”)。
如果我理解正确的话,“无头”的内容管理系统可以同时向至少两个不同的前端接口(“两个不同的程序”)提供内容。
我假设通过设计,Drupal并不是解耦的,因为它确实构建在JavaScript (例如,节点的快速编辑)中,但是在设计上它是无头的吗?
发布于 2021-11-25 01:45:14
Headed意味着有一个GUI (图形用户界面)。无头意味着一个没有那个的系统。Drupal可以无头运行--有一些无头发行版可以作为应用程序或反应站点的后端使用。但是,在默认情况下,它是头- Drupal核心有一个现成的GUI。解耦指的是分离头部(GUI)和后端.Drupal是解耦的,因为它将前端和后端分离开来。
Drupal在设计上不是解耦的,因为它几乎在任何地方都构建在JavaScript中。
Drupal是解耦的,它确实有一个广泛的、功能强大的JavaScript API,它附带了核心:https://www.drupal.org/docs/drupal-apis/javascript-api/javascript-api-overview。
发布于 2021-11-25 02:20:13
Drupal可以被使用解耦,并且随着新特性被添加到Drupal 9中,对解耦的支持在API-第一倡议下被赋予了很高的优先级(确保提供的API允许程序员选择他们想要使用的Drupal的部分,并根据需要用自定义的解决方案替换其他部件)。
从历史上看,Drupal 7+旧版本并不是解耦的(虽然旧版本可以与贡献模块一起无头使用),但从Drupal 8开始,Drupal核心本身就支持解耦使用。
是的,Drupal确实提供了一个前端--但是这个前端是通过可以禁用的模块提供的。因此,Drupal可以使用解耦,因为它不会强迫您使用它的UI;您可以禁用Drupal,并将其替换为其他东西,比如React或角应用程序。
Contenta是一个无头Drupal发行版,它可以让您了解如何设置Drupal以供无头使用。
为了真正获得您的内容,Drupal在Core中提供了对JSON:API和REST的支持,GraphQL可以通过一个贡献模块获得。JSON:API支持特别好,因为它允许您以完整的Drupal权限公开所有内容,很少有额外的配置。
然而,这是一个相当复杂的主题;它有一整本书:
在Drupalize.me上也有一个很棒的教程系列。
https://drupal.stackexchange.com/questions/308403
复制相似问题