部署 Hasura GraphQL 引擎以从 Koyeb 上的数据库公开和创建 API
简介
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 应用程序创建表单。
-
用
hasura/graphql-engine填写Docker image字段。 -
在 Ports 部分,将导出端口从
80更改为8080,这是hasura/graphql-engineDocker 映像应用程序正在侦听的端口。需要此设置让 Koyeb 知道您的应用程序正在侦听哪个端口并正确路由传入的 HTTP 请求。如果您希望 Hasura GraphQL 引擎在特定路径上可用,您可以将默认值 (/) 更改为您选择的路径。 -
在环境变量部分,配置正确运行 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.
进入全屏模式 退出全屏模式
- 为您的应用程序命名,即
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。
更多推荐
所有评论(0)