Web applications 作为创建CMS驱动的应用程序的工具,KeystoneJS和Strapi之间的主要区别是什么?

Web applications 作为创建CMS驱动的应用程序的工具,KeystoneJS和Strapi之间的主要区别是什么?,web-applications,content-management-system,frontend,keystonejs,strapi,Web Applications,Content Management System,Frontend,Keystonejs,Strapi,我倾向于使用Keystone(按原样)作为标准的、服务器驱动的多页应用程序,当我想将Vue/React/Angular放在SPA前端时,我会使用strapi?因为它已经有了一个模板/视图,Keystone可能会更快地获得MVP?还有别的吗 不熟悉keystonej,但从外观上看,它们非常相似。Strapi看起来有一个更可扩展的API,但总体上它的概念是相同的。我已经在几个项目中使用了Strapi,它的使用速度很快,您可以在不到一个小时的时间内在Heroku上创建一个完整构建的模式 两者之间的一点

我倾向于使用Keystone(按原样)作为标准的、服务器驱动的多页应用程序,当我想将Vue/React/Angular放在SPA前端时,我会使用strapi?因为它已经有了一个模板/视图,Keystone可能会更快地获得MVP?还有别的吗

不熟悉keystonej,但从外观上看,它们非常相似。Strapi看起来有一个更可扩展的API,但总体上它的概念是相同的。我已经在几个项目中使用了Strapi,它的使用速度很快,您可以在不到一个小时的时间内在Heroku上创建一个完整构建的模式

两者之间的一点是GraphQL支持,Strapi正在大力推动参与GraphQL世界,我相信是为了跟上Tipe.io的步伐


设置GQL+Strapi+Nuxt/Next对于创建SSR应用程序非常有用

在撰写本文时(这个问题发布后将近几年),Keystone 5以graphql为导向,因此这不再是两者之间的主要区别。Keystone 4仍然作为REST优先框架进行维护


Strapi现在是GQL的第一位,拥有一个更大的社区。

一年多以来,我一直很喜欢在多个项目上与KeystoneJS v5合作。 我和你有同样的问题,我选择Keystone而不是Strapi(即使git明星和社区更高),因为我在寻找一个简单的基于文件的后端生成器

这行代码表示:
schema=>({AdminUI,GraphQLApi})

我需要快速定义(并随后轻松修改)后端的信息体系结构,并看到它自动反映在CMS和API中

(Strapi用户,如果我错了请纠正我)
我发现Strapi更关注于构建一种拖放(无代码)方式来构建这个后端。我找不到一种直接的方法来使用Strapi文件,并获得我所寻找的CMS和API。在我看来,它是为那些想要后端但不想编写代码的人而构建的

我宁愿使用代码编辑器函数(查找/替换、multicursor)来定义和修改模式,而不是在浏览器上拖放组件。还可以使用以前的项目作为基于我的代码来构建新的项目

我的keystone项目得到了一个非常简单的文件结构,其中大多数文件都是开箱即用的,定制变体、AdminUI组件、钩子和数据种子非常简单

以下是一个例子:

├── index.js  // imports entities, hooks, initial-data, submodules
├── initial-data.js // imports seed/index.js and orchestastes how to create data 
├── entities // for each entity (list): field types, access control, hooks, adminUI configs
│   ├── index.js
│   ├── Users.js 
│   ├── Books.js
│   ├── Loans.js
│   ├── Authors.js
│   ├── ...
│   └── Categories.js
├── extendGraphqlSchema // pretty easy to add new custom Graphql types, mutations and queries  
│   ├── index.js
│   ├── types
│   ├── queries
│   └── mutations
├── hooks 
│   ├── index.js
│   ├── user_beforeUpdate.js
│   ├── book_validateInput.js
│   ├── ...
│   └── loan_afterDelete.js
├── keystone-media-server // submodule I use on many Keystone projects
│   ├── adapters
│   ├── fields
│   ├── lists
│   ├── resolvers
│   └── seed
└── seed // list of functions to create a complete data example to test
    ├── index.js
    ├── createUsers.js
    ├── createBooks.js
    ├── createLoans.js
    ├── createAuthors.js
    └── createCategories.js

谢谢,这很有帮助。我认为Keystone更倾向于REST,我对REST更为熟悉,但我认为我了解GraphQL对基于客户端的应用程序的好处。我现在正在浏览Strapi x GQL x Nuxt教程。感谢你的提示re tipe.io(Strapi默认设置为与REST一起工作,但通过
Strapi install graphql
提供了一个GQL插件,所以你在几秒钟内就准备好了GQL)绝对是这样,这很好,因为你不需要构建解析程序,要记住的是,如果你计划在其他实例中使用GQL,设置学习曲线有一点向上,特别是当你使用订阅时。“Strapi现在是GQL第一,拥有一个更大的社区。”您好,实际上我们是REST第一,GraphQL是一个可选插件,但我们正在努力使它们在功能和支持方面相等(REST仍然相当高,我们的管理面板将只通过REST与后端对话)我们的结构有点复杂是的,我们正在研究更好的种子选项,尽管(数据迁移也是如此)我是Strapi的解决方案工程师。