先决条件
在安装 Strapi 之前,必须在您的计算机上安装以下要求:
- node.js (打开新窗口):仅支持 Maintenance 和 LTS 版本(
v14
、v16
和v18
)。
-
v4.3.9
Strapi及以上版本推荐使用 Node v18.x - 建议将 Node v16.x 用于 Strapi
v4.0.x
到v4.3.8
.
- 您首选的 Node.js 包管理器:
- npm (打开新窗口)(
v6
仅) - yarn(打开新窗口)
- Python (打开新窗口)(如果使用 SQLite 数据库)
#🚀 A 部分:使用 Strapi 创建一个新项目
#第一步:运行安装脚本
在终端中运行以下命令:
- NPM
- yarn
✏️注意
快速启动安装使用 SQLite 数据库设置 Strapi。其他数据库和安装选项可用。
#第二步:注册第一个管理员用户
安装完成后,您的浏览器会自动打开一个新选项卡。
通过填写表格,您可以创建自己的帐户。完成后,您将成为此 Strapi 应用程序的第一个管理员用户。欢迎登机,指挥官!
您现在可以访问管理面板 (打开新窗口):
🥳 恭喜!
您刚刚创建了一个新的 Strapi 项目!您可以开始使用 Strapi 并使用我们的用户指南自行发现产品,或继续下面的 B 部分。
#🛠 B 部分:构建您的内容
安装脚本刚刚创建了一个空项目。我们现在将指导您创建餐厅目录,灵感来自我们的FoodAdvisor (打开新窗口)示例应用程序。
简而言之,我们将为您的内容创建一个数据结构,然后添加一些条目并发布它们,以便可以使用您的内容的 API。
Strapi 的管理面板运行在http://localhost:1337/admin (打开新窗口). 这是您将花费大部分时间创建和更新内容的地方。
💡 提示
如果服务器尚未运行,请在您的终端中cd
进入my-project
文件夹并运行npm run develop
(或yarn develop
)以启动它。
#第 1 步:使用 Content-type Builder 创建集合类型
Content-type Builder 插件可帮助您创建数据结构。当使用 Strapi 创建一个空项目时,这就是派对的开始!
#创建“餐厅”集合类型
您的餐厅目录最终将包含许多餐厅,因此我们需要创建一个“餐厅”集合类型。然后我们可以描述添加新餐厅条目时要显示的字段:
- 转到插件(Plugins)内容类型生成器 (Content-Type Builder)在主导航中。
- 单击创建新的集合类型。
- 键入显示名称
Restaurant
,然后单击继续。 - 单击文本(Text)字段。
- 在名称字段中键入name。
- 切换到Advanced Settings选项卡,并勾选必选(Required) 字段和唯一(Unique) 字段设置。
- 单击添加另一个字段(Add another fileld)。
- 选择富文本(Rich text)字段。
- 在名称
字段下键入description
,然后单击完成。 - 最后点击保存,等待 Strapi 重启。
一旦 Strapi 重新启动,“餐厅”将列在导航中的内容管理器 > 集合类型下。哇,您刚刚创建了您的第一个内容类型!太酷了——让我们现在再创建一个,只是为了好玩。
#创建“类别”集合类型
如果我们的餐馆目录有一些类别,这将有助于更有条理。让我们创建一个“类别”集合类型:
- 转到插件内容类型生成器 (打开新窗口)在主导航中。
- 单击创建新的集合类型。
- 键入显示名称
Category
,然后单击继续。 - 单击文本字段。
- 在名称字段中键入
name
。 - 切换到Advanced Settings选项卡,并检查Required 字段和Unique 字段设置。
- 单击添加另一个字段。
- 选择关系字段(Relation)。
- 在右侧,单击Category相关字段框并选择“Restaurant”。
- 在中心,选择代表“多对多”的图标。文本应为
Categories has and belongs to many Restaurants
. - 最后,点击Finish,然后点击Save按钮,等待 Strapi 重启。
#第 2 步:使用集合类型创建新条目
现在我们已经创建了一个包含 2 种集合类型的基本数据结构,“餐厅(restaurant)”和“类别(Category)”,让我们使用它们通过创建新条目来实际添加内容。
#为“餐厅”集合类型创建一个条目
- 在导航中
转到内容管理器(Content Manager) > 集合类型 - 餐厅(Restaurant) 。 - 单击创建新条目(Create new entry)。
- 在名称字段中输入您最喜欢的当地餐馆的名称。假设是
Biscotte Restaurant
。 - 在描述字段中,写下关于它的几句话。如果您缺乏灵感,可以使用
Welcome to Biscotte restaurant! Restaurant Biscotte offers a cuisine based on fresh, quality products, often local, organic when possible, and always produced by passionate producers.
- 单击保存。
该餐厅现已列在列表中(打开新窗口)看法。
#添加类别
让我们转到
内容管理器 > 集合类型 - 类别(Category) (打开新窗口)并创建 2 个类别:
- 单击创建新条目。
-
French Food
在名称字段中键入。 - 单击保存。
- 返回Collection types - Category,然后再次单击Add new entry。
-
Brunch
在名称字段中键入,然后单击保存。
“French Food”和“Brunch”类别现在列在集合类型 - 类别中 。
#向餐厅添加类别
内容管理器 > 集合类型 - 餐厅 (打开新窗口)在导航中,单击“Biscotte Restaurant”。
在右侧边栏的“类别”下拉列表中,选择“早午餐(Brunch)”。单击保存。
#第 3 步:设置角色和权限
我们刚刚添加了一家餐厅和 2 个类别。我们现在有足够的内容可以消费(双关语)。但首先,我们需要确保内容可通过 API 公开访问:
- 单击主导航底部的Setting设置。
- 在Users & Permissions Plugin下,选择Roles (打开新窗口).
- 单击公共角色。
- 在Permissions下向下滚动。
- 在权限选项卡中,找到餐厅并单击它。
- 单击find和findone旁边的复选框。
- 对Category重复:单击find和findone旁边的复选框。
- 最后,点击保存。
#第四步:发布内容
默认情况下,您创建的任何内容都保存为草稿。让我们发布我们的类别和餐厅。
首先,导航到 Content Manager > Collection types - Category (打开新窗口). 从那里:
- 单击“Brunch”条目。
- 在下一个屏幕上,单击Publish。
- 在“确认”窗口中,单击“是,发布”。
然后,返回类别列表并重复“法国食品”类别。
最后,要发布您最喜欢的餐厅,请转至发布它。
#第 5 步:使用 API
好的,亲爱的美食家,我们刚刚完成了内容创建并使其可通过 API 访问。你可以拍拍自己的背——但你还没有看到你辛勤工作的最终结果。
你在这里:可以在http://localhost:1337/api/restaurants访问餐厅列表 (打开新窗口).
现在就试试!结果应该类似于下面的示例响应👇。