Web applications 作为创建CMS驱动的应用程序的工具,KeystoneJS和Strapi之间的主要区别是什么?
我倾向于使用Keystone(按原样)作为标准的、服务器驱动的多页应用程序,当我想将Vue/React/Angular放在SPA前端时,我会使用strapi?因为它已经有了一个模板/视图,Keystone可能会更快地获得MVP?还有别的吗 不熟悉keystonej,但从外观上看,它们非常相似。Strapi看起来有一个更可扩展的API,但总体上它的概念是相同的。我已经在几个项目中使用了Strapi,它的使用速度很快,您可以在不到一个小时的时间内在Heroku上创建一个完整构建的模式 两者之间的一点是GraphQL支持,Strapi正在大力推动参与GraphQL世界,我相信是为了跟上Tipe.io的步伐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上创建一个完整构建的模式 两者之间的一点
设置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的解决方案工程师。