Headless CMS:以API为输出方式的内容中心
我们先解释一下什么是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的目标。
所以,我们看到小程序、APP其实都是后端有一套系统,比如电商的,就有电商系统(库存、订单、物流等),视频播放就有视频管理(视频、发布、删除、评论等),图片的、新闻的都是一样。
因此,我们在构建APP/H5/小程序等系统时,首先要选择一套后端的管理系统,作为内容管理,我们推荐的CMS就是开源的Drupal系统。
Drupal的内容管理体系
之前讲过很多Drupal的内容管理体系,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比找第三方模块要简单很多。
Headless CMS的架构
基于Drupal的Headless的架构,整体上是前端使用VUE、React等框架,后端通过API输出内容,可以参考如下图所示的架构,
当然,Drupal本身也有一个Headless Drupal,也可以直接拿来试一试。
更多内容管理系统,请参考我们其他相关文章,