什么是Headless
先解释一下什么是Headless CMS,Headless即无头,就是无头CMS,即没有面相/头像的CMS,也就是长什么样子不管,只需要管构建主干(内容)部分。
(1)Headless CMS,负责内容结构的构建,比如文章、视频课程等。
(2)Headless CMS,负责内容的增删查改,如创建文章,修改文章。
(3)Headless CMS,有比较完备的API接口,比如JSON API,GraphQL等。
(4)Headless CMS,一般配合前端框架,比如Vue.js等搭配使用。
(5)Headless CMS,要做SEO,可以通过SSR的方式,服务器端生成,而达到SEO的目标。
构建内容管理体系
我们可以用Drupal来构建完整的内容管理体系,可以参考之前的文章,
1)一个灵活的CMS应该具备什么功能
2)CMS核心功能列表
Drupal本身可以完整并且高效的构建我们想要的任何类型的内容,可以通过Drupal后台即可操作完成,如下所示Drupal的后台界面,
Drupal如何构建Headless CMS
Drupal构建完成了内容,剩下的就是API了,Drupal本身支持多套API,我们列举一下:
(1)REST API,Drupal 7/8本来默认的API,REST本身也比较流行,所以本身的REST功能也很强大。
(2)JSON API,后期新秀,JSON的功能强大,几乎可以完成任何想要的内容查询,因此JSON API逐渐替代了REST API的地位,目前JSON API已成成为Drupal 9的核心模块,也是默认的API。
(3)GraphQL,Drupal有第三方模块GraphQL,该模块的安装量在2400多,可见还是比较稳定并且实用的模块,该模块可以提供GraphQL的构建,因此可以完成GraphQL的API构建。
(4)自定义Controller,Drupal本身是基于MVC的,因此定义个Controller也非常简单,几行代码就可以,Response一个JsonResponse就可以了,所以,一些稍微特殊的数据,直接写Controller比找第三方模块要简单很多。
整体架构图
基于Drupal的Headless的架构,整体上是前端使用VUE、React等框架,后端通过API输出内容,可以参考如下图所示的架构,
当然,Drupal本身也有一个Headless Drupal,也可以直接拿来试一试,不过Acquia更多基于商业的使用比较多,不如直接使用Drupal原版本比较方便,以后也好升级和维护。
大家好,我是Robbin,来给大家讲开源的Drupal+开源的GrapeJS构建可视化、模块化、低代码的、以上手的CMS应用平台。
作者:全景CMS作者肉饼
来源:https://www.jianshu.com/p/de1072470923