创建连接到 MySQL 的 GraphQL 模式
Posted: Thu Jan 30, 2025 6:54 am
npm install netlify-cli -g
hugo serve现在,我们可以使用 来本地运行网站,而不是netlify dev。目前,它只会hugo serve为我们运行,但我们稍后会对其进行增强。
StepZen 允许我们编写 GraphQL 模式,然后将其连接到各种数据源,包括 REST API 和数据库。我们可以将多个数据源连接到单个 GraphQL API,甚至可以将它们组合起来,以在单个查询中从多个后端获取资源。但是,在这种情况下,我们将模式仅连接到单个 MySQL 数据源。
在我们的 Hugo 项目中,让我们在根目录中创建一个文件夹,以保存我们的模式。这是StepZen Netlify Build Pluginstepzen假定的文件夹。在该文件夹中,我们将放置代表我们的 GraphQL 类型的文件。这些类型将镜像我们刚刚设置的 MySQL 后端。.graphql
但是,在创建类型之前,让我们先设置一下配置,我们将使 越南电报号码数据库 它来告诉 StepZen 如何连接到我们的 MySQL 数据库。我们需要将其放在config.yaml我们文件夹中的文件中stepzen。在其中,我们将向 StepZen 提供我们之前从 Heroku 复制的 DSN 信息。请注意,DSN 的格式应如下例所示。
我们希望能够查询包含帖子的数据,包括获取所有博客帖子(即getPosts)和通过 id 获取单个帖子(即getPost)。为了将其连接到我们的 MySQL 数据库,我们将使用 StepZen 的@dbquery指令。将以下查询放在类型定义下方:
将此类型连接到 MySQL 数据所需的只是数据库类型(mysql)、我们从中提取数据的表(posts)以及用于连接的配置(mysql_config我们先前在config.yaml文件中定义的)。
stepzen接下来,让我们在目录中名为的文件中为我们的博客文章类别创建一个类型category.graphql。
现在我们有两种类型,但它们还不知道彼此。我们想要的是,当我们查询博客文章时,我们会得到它们被分配的类别。让我们解决这个问题。
首先,在 中category.graphql,让我们添加第三个查询以按帖子 ID 获取类别。table此 GraphQL 查询将指定 SQL ,而不是在 MySQL 中指定要连接的
现在我们将使用另一个特殊的 StepZen 指令@materializer来填充我们类型中的类别。我们只需要提供StepZen 将用于填充 的类型Post查询的名称,这将是我们刚刚在上面创建的查询。
hugo serve现在,我们可以使用 来本地运行网站,而不是netlify dev。目前,它只会hugo serve为我们运行,但我们稍后会对其进行增强。
StepZen 允许我们编写 GraphQL 模式,然后将其连接到各种数据源,包括 REST API 和数据库。我们可以将多个数据源连接到单个 GraphQL API,甚至可以将它们组合起来,以在单个查询中从多个后端获取资源。但是,在这种情况下,我们将模式仅连接到单个 MySQL 数据源。
在我们的 Hugo 项目中,让我们在根目录中创建一个文件夹,以保存我们的模式。这是StepZen Netlify Build Pluginstepzen假定的文件夹。在该文件夹中,我们将放置代表我们的 GraphQL 类型的文件。这些类型将镜像我们刚刚设置的 MySQL 后端。.graphql
但是,在创建类型之前,让我们先设置一下配置,我们将使 越南电报号码数据库 它来告诉 StepZen 如何连接到我们的 MySQL 数据库。我们需要将其放在config.yaml我们文件夹中的文件中stepzen。在其中,我们将向 StepZen 提供我们之前从 Heroku 复制的 DSN 信息。请注意,DSN 的格式应如下例所示。
我们希望能够查询包含帖子的数据,包括获取所有博客帖子(即getPosts)和通过 id 获取单个帖子(即getPost)。为了将其连接到我们的 MySQL 数据库,我们将使用 StepZen 的@dbquery指令。将以下查询放在类型定义下方:
将此类型连接到 MySQL 数据所需的只是数据库类型(mysql)、我们从中提取数据的表(posts)以及用于连接的配置(mysql_config我们先前在config.yaml文件中定义的)。
stepzen接下来,让我们在目录中名为的文件中为我们的博客文章类别创建一个类型category.graphql。
现在我们有两种类型,但它们还不知道彼此。我们想要的是,当我们查询博客文章时,我们会得到它们被分配的类别。让我们解决这个问题。
首先,在 中category.graphql,让我们添加第三个查询以按帖子 ID 获取类别。table此 GraphQL 查询将指定 SQL ,而不是在 MySQL 中指定要连接的
现在我们将使用另一个特殊的 StepZen 指令@materializer来填充我们类型中的类别。我们只需要提供StepZen 将用于填充 的类型Post查询的名称,这将是我们刚刚在上面创建的查询。