我是在 2020 年 5 月体验的 3.0.0-beta 版。
用 strapi 的 CLI 生成一个项目后运行它。在 Content-Types Builder 建立一些模型:
建立时,strapi 后台做了这样的事情:
下面这张图中的 api
目录,即是 strapi 用来存放生成的文件:
然后它自动提供了最基础的 RESTful 接口,以及可以使用 GraphQL 进行查询。
它也有素材管理的功能(Media Library),但我使用下来觉得 功能太简单了,连建目录、选 tag 都做不了,别说对素材做版本管理了。
对于 Content-Types Builder:
DurationField
来表示时长,strapi 就没有;意味着你需要用数字来存储时长,并且写额外的代码将其序列化成 00:01:32
格式对于 RESTful API:
对于素材管理(Media Library):
uploads
目录中对于用户注册、登陆:
权限管理:跟 Django 差不多,可以针对不同的 model 做细分的操作权限设置。
如果你的产品是内容型的,并且内容生产是站方提供而不是用户提供,那么 strapi 可能是个不错的选择,毕竟你不需要花太多心思就能构建一个可发布内容的后台系统,而不太需要考虑新增内容时的字段校验。如果涉及到用户提供内容,那你可能需要写额外的代码逻辑去处理(比如格式校验、文件上传等等),这使得它跟其他的 web 框架没太多区别。