Strapi创建自定义Content Api

Strapi创建自定义Content Api

> Strapi is the leading open-source headless CMS. It’s 100% Javascript, fully customizable and developer-first.


1.初始化一个 Strapi 项目

使用 yarn 安装 Strapi (推荐)
1
yarn create strapi-app my-project --quickstart
使用 npm/npx 安装 Strapi
1
npx create-strapi-app my-project --quickstart

上述步骤执行完毕以后,将自动在浏览器打开 http://localhost:1337/admin 窗口。这一步设置 CMS 的 Super Admin 用户名与密码。
设置Superadmin的用户名和密码
这一步我设置了

登录邮箱
1
[email protected]
登录密码
1
GHEC3ziff!bax2yawn

点击准备开始进入到 Strapi 的 Admin 内容管理页面,如下所示
Strapi Admin

2. 创建一个 ContentType(内容类型)

ContentType 是一个数据集合的结构。本例新建一个名为 Movie 的 ContentType。一条 Movie 数据,我们希望它的包含
豆瓣电影示例

一条Movie数据包含的字段
1
2
3
4
5
6
7
8
9
10
Name 名称 类型:文本
PremiereDate 上映日期 类型:日期
Directors 导演 类型:文本
Editors 编剧 类型:文本
Actors 主演 类型:文本
Type 类型 :文本
OfficialSite 官网 类型:文本
Country 国家 类型:文本
Duration 片长 类型:数字
Post 海报 类型:文本

创建一个Content Type
在弹出的窗口里,填入这个 Content Type 的名称,本例为 movie
填写Content Type名称
接下来,我们需要将上面的字段添加到这个 Content Type 中。
添加name字段,选择文本
添加name字段
将上述字段依次添加完成以后,保存,Strapi 重新启动,完成时我们可以在左侧看到我们刚刚新建的 Content Type 集合。
保存添加的字段
现在我们在 Movies 中新建一条数据
新建一条movie数据

3.通过 Stapi 自动生成的 Api 获取刚刚创建的数据

访问 http://localhost:1337/movies 403 Forbidden
上面的数据添加完成以后,访问自动生成的 Api 接口返回 403 Forbidden,这是因为创建的内容默认不对外公开,所以需要进行权限设置。
按照如下箭头顺序进入公开的角色(所有人都可以访问)的权限设置页面
Content Type权限设置
往下滑动,找到我们所需修改权限的 Movie 类型,勾选 find 和 findOne,保存。
设置Movie的访问权限
这时,访问 movies 接口我们就可以看到刚刚添加的 movie 数据了。
访问movies Api

3.添加 GraphQL 插件。

添加GraphQL插件
点击左侧导航的市场,下载 Graphql 插件,耐心等待一会儿,安装完成以后 Strapi 服务将自动重新启动。
安装成功以后,Strapi GraphQL 插件自动为我们生成了我们的 Content Type 的 Graphql Query 和 Mutation 语句。打开http://localhost:1337/graphql, 我们可以通过 Query 查询 movies

query movies
1
2
3
4
5
6
7
8
9
10
{
movies{
id
name
directors
actors
premiereDate
post
}
}

使用GraphQL Query查询movies

到此,一个 content Api 就完成了,下一篇文章,是自定义 Content GraphQL Api 的教程

作者

Lynan

发布于

2021-02-01

许可协议