简介

Hasura GraphQL 引擎允许您从数据库创建和公开 GraphQL API。使用 Hasura GraphQL 引擎,您可以专注于构建数据模式结构

让您更快地构建现代应用程序。

Hasura GraphQL 引擎带有原生的、有用的原语,例如 JWT 身份验证、限制用户访问特定数据子集的授权、用于捕获特定表上发生的事件的事件触发器

并调用 webhook 来处理和执行处理操作等等。

要求

要成功遵循并完成本教程,您需要:

  • 用作 Hasura GraphQL 引擎后端的 Postgres 数据库。

  • Koyeb 帐户用于部署和运行 Hasura GraphQL 引擎。

步数

在本指南中,我们将重点介绍如何在 Koyeb 无服务器平台上部署 Hasura GraphQL 引擎,并使用 PostgreSQL 作为后端构建一个简单的 GraphQL API。

1.在Koyeb上部署Hasura GraphQL引擎

2.试试哈苏拉

3.结论

在 Koyeb 上部署 Hasura GraphQL 引擎

为了部署 Hasura GraphQL,我们使用hasura/graphql-engineDocker 镜像。在 Koyeb 控制面板上,单击 Creat App 按钮。

您登陆 Koyeb 应用程序创建表单。

  1. hasura/graphql-engine填写Docker image字段。

  2. Ports 部分,将导出端口从80更改为8080,这是hasura/graphql-engineDocker 映像应用程序正在侦听的端口。需要此设置让 Koyeb 知道您的应用程序正在侦听哪个端口并正确路由传入的 HTTP 请求。如果您希望 Hasura GraphQL 引擎在特定路径上可用,您可以将默认值 (/) 更改为您选择的路径。

  3. 在环境变量部分,配置正确运行 Hasura GraphQL 引擎所需的环境变量。

- HASURA_GRAPHQL_DATABASE_URL: The environment variable containing the PostgreSQL URL, i.e. `postgres://<user>:<password>@<host>:<port>/<database>`. To store this value which contains sensitive information, we strongly recommend configuring the environment variable using Koyeb secrets instead of storing it as a plaintext value. Secrets are encrypted at rest. They are ideal to store add sensitive data like authentication tokens, OAuth tokens, etc.
- HASURA_GRAPHQL_ENABLE_CONSOLE: Set to `true`. This will expose the Hasura console and allow us to perform the configuration.
- HASURA_GRAPHQL_ADMIN_SECRET: The secret to access the Hasura Graphql admin. As for the `HASURA_GRAPHQL_DATABASE_URL`, we strongly recommend using a secret to store this value.

进入全屏模式 退出全屏模式

  1. 为您的应用程序命名,即hasura-demo,然后单击创建应用程序

试用 Hasura

创建表

通过单击 Koyeb 控制面板上的应用程序 URL 打开 Hasura 控制台,在我的例子中是:hasura-ed.koyeb.com

您登陆 Hasura 控制台,您需要使用您的管理员密码登录。

登录后,单击 Hasura 控制台顶部导航栏上的 Data 选项卡,然后单击 Create Table 按钮。

在本指南中,我们将创建一个待办事项表来展示如何与数据交互。

  • 表名:全部

  • 列:

姓名

类型

默认值

可空的

独特的

ID

UUID

gen_random_uuid()

错误的

真的

任务

文本

错误的

错误的

地位

文本

错误的

错误的

创建_at

日期

现在()

错误的

错误的

更新_at

日期

现在()

错误的

错误的

  • 主键:id

正确填写表格后,单击 Add Table 按钮。

向待办事项表插入一些数据

在 Hasura 控制面板上,单击 *GraphiQL 选项卡。

要将数据插入我们的表中,我们使用 GraphQL 突变。突变用于在服务器上创建、更新和删除数据。

在编辑器中粘贴以下代码片段以创建我们的第一个待办事项,然后单击 Play 按钮。

mutation toto {
  insert_todo_one(object: {task: "My first task"}) {
    id
    status
    created_at
    task
    updated_at
  }
}

进入全屏模式 退出全屏模式

此查询仅插入一个 todo 任务_我的第一个任务_,并返回 todo 任务 id、task、created_at、update_at 和 status。

检索我们的待办事项

现在要检索我们的 todo 任务,请执行以下 GraphQL 查询:

query getTasks {
  todo {
    id,
    task,
    created_at,
    updated_at,
    status
  }
}

进入全屏模式 退出全屏模式

此查询检索所有待办事项并返回其 id、task、created_at、update_at 和 status。

结论

在本指南中,我们将了解如何部署 Hasura GraphQL 引擎和 koyeb、创建待办事项表以及执行基本 GraphQL 查询以插入和检索数据。

Hasura 提供了本指南未涵盖的强大功能,我们可能会在下一个教程中介绍。

要深入了解 Hasura 的工作原理,我们建议您查看 Hasura 官方文档

如果您对本教程有任何建议或反馈,或者希望查看涵盖的特定主题,请随时加入我们的Slack。

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐