跳到主要内容

CMS 系统

CMS 是 Content Management System 的缩写,意为"内容管理系统",可以浏览、编辑、发布文章等,用于企业宣传、产品介绍、博客、建站等等场景。

这里我们用一个基础版本的 CMS 系统来展示清林云自定义应用能力。基础版本能满足大部分基础需求,但是每家组织的 CMS 需求都不相同,所以你也可以在这个基础上再自行添加更多高级的个性化功能。

清林云 BaaS 的 CMS 相当于市面上的 Headless CMS,都是只负责逻辑和数据,前端自己定制。

需求

组织或个人需要发布一些文章等内容,让用户可以阅读。

CMS 的用途比较广泛,可以用于产品介绍,可以用于新闻动态,可以用于文章记录,也可以用于品牌展示。

其实对于内容比较少的并且懂一定技术的用户来说,静态网站更好,自行编辑部署,利于 SEO,还能利用 CDN 加速等。

但是对于内容比较多的网站,肯定不能用静态网站,管不过来。而且很多场景下,也不希望每次编辑内容都要走一遍开发部署流程,直接在线编辑所见即所得。

动态内容肯定要比制作静态网站方便,部署一次之后只需要编辑文章就行。

可能有人会觉得不利于 SEO,但现在百度谷歌的爬虫其实也能爬动态内容的,对于 seo 其实影响不大,而且实在担心,也可以用 ssr 服务端渲染。

相比起传统的基于 PHP 等框架的单机 CMS,借助于清林云的分布式能力,这里的 CMS 能够承担大规模流量和数据,无需担心宕机,也不用再自行采购服务器等,前端可以使用 React、Vue 等现代框架制作更好更漂亮的网站内容,也更加灵活。

功能分析

首先,CMS 的核心目的就是让文章能够被用户阅读,所以首先要能以时间顺序排列,要能被多个条件搜索或全文检索。

其次,管理人员可以对文章进行编辑、保存为草稿、发布、分组、打标签等管理。

最后,如果网站允许读者登录,也可以添加评论、点赞、收藏等,整体是可选的。

数据库结构

Article 文章

整个系统围绕文章,所以这是重点,要尽量给它多重分类,这样就能更好适用大小网站。

采用 S1 引擎,获得更好的查询。

article1

article2

Directory 目录

如果有多个文章组成的集合,可以使用目录来组织。

directory

SiteConfig 站点配置

用于建站场景,可以设置一些站点名称、logo、网址、简介等

siteConfig

ArticleConfig 文章管理配置

分类站点、页面、分组、类别,以及预设的标签、类型、作者等,方便编辑时直接选用。

articleConfig


下面的表则是可选项,需要产品的用户登录后才能使用:

Comment 评论

评论归属于文章,但同时评论的 ID 再加一个 parentId。这样子就能实现跟多功能。

比如说,parentId 为 hot 时,可以通过此查询精选评论;为 top 时,可以查询置顶评论;为 root 时则为普通评论,为其他评论 ID 时,则为多级评论,可以用评论回复别人的评论,无限折叠下去,当然具体怎样取决于实际的产品设计。

comment

LikeArticle 点赞过的文章

简单的按时间排序记录列表。

like

ViewArticle 浏览记录

同上。

view

CollectionList 收藏夹

用户可以有多个收藏夹,分别收藏不同类型的文章。

collectionList

CollectionArticle 收藏过的文章

collectionArticle

API

由于大部分 API 都是 CRUD,所以我们直接在云数据库界面使用模板创建。

另外对文章阅读、点赞、收藏、评论数的更新都放在相应数据的新建 API 流程中。

createArticle

createArticle1

createArticle2

updateArticle

updateArticle1

updateArticle2

deleteArticle

deleteArticle1

searchArticle

搜索文章,由于 S1 引擎的优越性,我们可以充分利用搜索功能才区分文章。几个分类属性可以决定归属,当然简单的站点可以不使用,不传值即可。

可以按创建时间排序,也可以按点赞数、排序分、内容相关性等条件排序。

最后返回值不包括 content,因为该字段为正文较大,不用包含在内,只返回列表和概要,然后当用户点击列表后使用下面的 getArticle API 查询正文。

searchArticle1

getArticle

getArticle1

createDirectory

createDirectory1

updateDirectory

updateDirectory1

deleteDirectory

deleteDirectory1

getDirectory

getDirectory1

getManyDirectory

getManyDirectory1

createSiteConfig

createSiteConfig

updateSiteConfig

updateSiteConfig

deleteSiteConfig

deleteSiteConfig

getSiteConfig

getSiteConfig

getManySiteConfig

getManySiteConfig

createArticleConfig

createArticleConfig

updateArticleConfig

updateArticleConfig

deleteArticleConfig

deleteArticleConfig

getArticleConfig

getArticleConfig

getManyArticleConfig

getManyArticleConfig

createComment

createComment

deleteMyComment

deleteMyComment

deleteComment

deleteComment

getManyComment

getManyComment

createLikeArticle

createLikeArticle

deleteLikeArticle

deleteLikeArticle

getManyLikeArticle

getManyLikeArticle

createViewArticle

createViewArticle

deleteViewArticle

deleteViewArticle

getManyViewArticle

getManyViewArticle

createCollectionList

createCollectionList

updateCollectionList

updateCollectionList

deleteCollectionList

deleteCollectionList

getManyCollectionList

getManyCollectionList

createCollectionArticle

createCollectionArticle

deleteCollectionArticle

deleteCollectionArticle

getManyCollectionArticle

getManyCollectionArticle

viewArticle

viewArticle

dislikeArticle

dislikeArticle

界面

暂无前端示例,后续会更新一个 CMS 系统进行开源,如果急需请联系客服。