使用Strapi InfraCloud技术在不到5分钟的时间内实现API

  • 6分钟阅读
  • 2020年3月11日
大拇指后

这种基于JAMStack的体系结构的关键组件之一是无头CMS系统。 Strapi 是一个开放源代码的无头CMS框架,可以以最少的工作量并且几乎没有时间来构建API。在本教程中,我们将使用Strapi构建一个简单的无头CMS,并在不到5分钟的时间内创建API端点。在下一个教程中,我们将探讨GraphQL以及如何在Strapi中使用它。

如果您打算按照本教程进行操作,则需要在计算机上安装NodeJS版本10.x,NPM版本6.x和MongoDB 3.6。您可以将Docker映像用于Mongo或在本地运行。 Strapi 还支持MariaDB,MySQL和PostgreSQL,但在撰写本文时,MongoDB作为一等公民受到支持。因此,在本文的范围内,我们将坚持使用MongoDB。 Strapi 在基于MacOS和Linux的操作系统上运行良好,对于Windows,它通过WSL提供了一些支持。

-开始创建您的Strapi应用程序。

?选择安装类型“自定义”(手动设置)

✔安装插件设置管理器。

✔安装插件content-type-builder。

✔安装插件内容管理器。

✔安装插件用户权限。

✔安装插件电子邮件。

✔安装插件上传。

2)启动Strapi实例

现在,我们准备以MongoDB作为后端启动Strapi:

[2019-04-25T05:25:03.977Z]信息文件已更改:/home/omkar/work/blogs/mongoose-project/plugins/users-permissions/config/actions.json

在继续创建第一个实体之前,让我们看一下在左侧面板上看到的“用户”标签。此选项卡来自名为“用户权限”的插件。简而言之,此插件以不断提高的抽象水平提供了权限,角色和用户供我们使用。权限可以是细粒度的,我们可以将权限精确地限制为特定实体的特定操作。这些权限集可以与一个角色相关联,然后可以将其应用于多个用户。

要创建内容类型或实体,请在左窗格中单击“内容类型生成器”,然后单击“添加内容类型”。在此博客中,我将创建2种内容类型,文章和作者。创建内容类型后,在其中添加适当的字段。例如,文章内容类型可以具有标题(字符串),内容(文本),publishDate(日期)等字段。作者内容类型可以具有名称(字符串),名称(字符串)等字段。

同时,我们还需要在作者与文章之间建立多对多的关系,因为一篇文章可以由多位作者撰写,而一位作者可以撰写多篇文章。我们可以通过在类型关系的作者或文章中添加一个字段,然后选择多对多关系类型来实现此目的。

我们可以通过UI对创建的内容类型执行CRUD操作。但是,由于我们已经创建了这些内容类型,因此我们可以使用REST API来执行这些操作。文档插件(插件)可轻松使用为实体类型创建的API。

让我们安装文档插件。为此,我们需要通过按“ Ctrl + c”来停止正在运行的trapi服务器,然后从项目目录本身运行以下命令。

✔文档插件已成功安装。

现在,在左侧面板的“插件”下,我们应该能够看到“ documentation”选项。单击该按钮时,我们会看到一些选项,例如jwt令牌,打开文档的链接,更新文档的按钮等。单击打开文档将带我们进入文档页面。在这里,我们可以获得创建的内容类型的详细信息以及测试和使用这些内容类型的简单机制。

在尝试API之前,我们需要授权swagger客户端。我们可以通过单击文档页面右侧的授权按钮并从文档插件添加jwt令牌来实现。之后,我们可以从文档页面开始使用swagger客户端。

现在,我们已经运行着一个bandi服务器,我们几乎可以立即创建内容类型(实体或模型)。这为我们提供了极大的灵活性,可以在用户界面侧工作,而不必担心后端。这些端点可以通过HTTP REST被任何前端应用程序使用。

我们已经看到,stradi生成了一些代码,使我们能够执行CRUD操作。但是该代码驻留在哪里?在项目目录中,我们可以看到有一个名为api的目录。在此目录中,trapi将为我们创建的每种内容类型(模型)创建一个新目录。例如,在我们的例子中,有2个目录,文章和作者:

文章作者

omkar @ Omkar api $ ls文章/

在config目录中,该目录将找到routes.json文件,这对于查找特定端点的代码很有用。文章实体的示例route.json文件如下所示。

       路径:/ 文章 s,

       路径:/ 文章 s / count,

       路径:/ 文章 s /:_ id,

为简洁起见,以上文件已缩短。文档目录包含文档插件用来显示Swagger UI的生成文件。

在模型,控制器和服务目录中,我们将找到与config类似的结构。每个实体都有一个目录,生成的代码将驻留在该目录中。模型下的实体目录还将在其中包含settings.json文件。该文件将被命名为.settings.json。它包含有关该实体和属于该实体的属性的详细信息,包括相关属性。在更改相关属性时需要谨慎。因为如果两个相关实体中的关系属性的类型都不匹配,那么stradi将无法工作。作为示例,添加了Article.settings.json。除了UI可以提供的功能以外,如果需要特定的用例,可以直接编辑这些文件。

     名称:文章,

       类型:字符串

       类型:文字

       类型:日期

       通过:文章

对于任何CMS系统而言,至关重要的事情之一就是文件上传功能。 Strapi 带有内置的文件上传插件。在左侧面板上,有一个文件上传选项。它提供了用于上传文件的界面。这些文件位于目录/ public / uploads中。

Strapi 使我们能够快速构建模型,而无需担心后端的问题。尽管这本身是一个巨大的附加值,但是关于stradi的最好的事情之一就是它对GraphQL的支持。 Strapi 提供了GraphQL插件,并且Playground允许我们将GraphQL查询与我们创建的模型一起使用。在下一篇文章中,我们将在Strapi上下文中介绍GraphQL查询。

#参考

使用Strapi只需不到5分钟即可获得API-InfraCloud Technologies