好香的Headless CMS - Strapi介绍

尝试了一下strapi,感觉真的很香,几分钟就能搭建起后台的REST API服务,同时还支持很多插件,比如graphql插件,这就大大加快了开发的速度。

strapi

其实,之所以喜欢它,最主要还是它的设计出发点:Headless CMS。也就是说,只提供操作数据的API,而不像Wordpress那样同时提供操作数据的UI。(严格的讲,strapi也提供一个非常简单的数据操作界面)

安装与配置

mkdir strapi-tut
cd strapi-tut
npx create-strapi-app backend

选择不使用模板。

安装完毕后访问:http://localhost:1337/admin

image

创建管理员用户并登录后会看到如下界面:
image

如果停止后下次再重新启动strapi:

cd backend
npm run develop

Content Types

一旦安装配置好之后,最重要的一步就是设计各种Content Type了,这就有点像关系型数据库中的表结构。这里共有三种不同类型的Content type: Collection type(针对有多个数据的类型,比如blog, user等), Single type(针对只出现一次的类型,比如:homepage),以及Component(可反复使用的组件)。在设计时可选的字段类型很丰富:

image

等到这个Content type设计好了之后,strapi就会生成类似于:http://localhost:1337/reviews 这样的API地址,这样前段就可以非常方便的使用了。

认证与授权

当然,作为一个CMS,strapi自然支持Authn/Authz。可以将某项内容指定为public,也可以指定其访问权限,用户组等等。

image

比如: 允许public访问review的findone / find权限。

image

使用Postman进行测试

推荐在postman中把所有相关测试都保存在一个folder中。

测试用户登录

image

将前面的jwt token复制到Auth -> Type -> Token中,就可以进行Delete/Update/Create操作了。

对Graphql的支持

添加了graphql插件的后台就更加好用了:
image

后台API都搞定了,前台就可以非常愉快的使用Vue/React等玩耍了。。。

评论