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 引擎,获得更好的查询。
Directory 目录
如果有多个文章组成的集合,可以使用目录来组织。
SiteConfig 站点配置
用于建站场景,可以设置一些站点名称、logo、网址、简介等
ArticleConfig 文章管理配置
分类站点、页面、分组、类别,以及预设的标签、类型、作者等,方便编辑时直接选用。
下面的表则是可选项,需要产品的用户登录后才能使用:
Comment 评论
评论归属于文章,但同时评论的 ID 再加一个 parentId。这样子就能实现跟多功能。
比如说,parentId 为 hot 时,可以通过此查询精选评论;为 top 时,可以查询置顶评论;为 root 时则为普通评论,为其他评论 ID 时,则为多级评论,可以用评论回复别人的评论,无限折叠下去,当然具体怎样取决于实际的产品设计。
LikeArticle 点赞过的文章
简单的按时间排序记录列表。
ViewArticle 浏览记录
同上。
CollectionList 收藏夹
用户可以有多个收藏夹,分别收藏不同类型的文章。
CollectionArticle 收藏过的文章
API
由于大部分 API 都是 CRUD,所以我们直接在云数据库界面使用模板创建。
另外对文章阅读、点赞、收藏、评论数的更新都放在相应数据的新建 API 流程中。
createArticle
updateArticle
deleteArticle
searchArticle
搜索文章,由于 S1 引擎的优越性,我们可以充分利用搜索功能才区分文章。几个分类属性可以决定归属,当然简单的站点可以不使用,不传值即可。
可以按创建时间排序,也可以按点赞数、排序分、内容相关性等条件排序。
最后返回值不包括 content,因为该字段为正文较大,不用包含在内,只返回列表和概要,然后当用户点击列表后使用下面的 getArticle API 查询正文。
getArticle
createDirectory
updateDirectory
deleteDirectory
getDirectory
getManyDirectory
createSiteConfig
updateSiteConfig
deleteSiteConfig
getSiteConfig
getManySiteConfig
createArticleConfig
updateArticleConfig
deleteArticleConfig
getArticleConfig
getManyArticleConfig
createComment
deleteMyComment
deleteComment
getManyComment
createLikeArticle
deleteLikeArticle
getManyLikeArticle
createViewArticle
deleteViewArticle
getManyViewArticle
createCollectionList
updateCollectionList
deleteCollectionList
getManyCollectionList
createCollectionArticle
deleteCollectionArticle
getManyCollectionArticle
viewArticle
dislikeArticle
界面
暂无前端示例,后续会更新一个 CMS 系统进行开源,如果急需请联系客服。