数据库

pg_graphql: PostgreSQL 的 GraphQL


pg_graphql 是一个 Postgres 扩展,用于使用 GraphQL 而不是 SQL 与数据库交互。

该扩展从现有的 SQL 模式中反映出一个 GraphQL 模式,并通过 SQL 函数 graphql.resolve(...) 将其暴露出来。这使得任何可以连接到 Postgres 的编程语言都可以通过 GraphQL 查询数据库,而无需额外的服务器、进程或库。

pg_graphql 的 resolve 方法旨在与 PostgREST(Supabase API 的底层工具)互操作,以便可以通过 RPC 调用 graphql.resolve 函数,以安全且高效的方式通过 HTTP/S 暴露 GraphQL API。

有关 SQL 模式如何反映到 GraphQL 模式的更多信息,请参阅 pg_graphql API 文档

启用扩展#

  1. 转到仪表板中的 数据库 页面。
  2. 在侧边栏中单击 扩展
  3. 搜索 "pg_graphql" 并启用该扩展。

用法#

给定一个表

1
create table "Blog"(
2
id serial primary key,
3
name text not null,
4
description text
5
);
6
7
insert into "Blog"(name)
8
values ('My Blog');

反映的 GraphQL 模式可以立即查询为

1
select
2
graphql.resolve($$
3
{
4
blogCollection(first: 1) {
5
edges {
6
node {
7
id,
8
name
9
}
10
}
11
}
12
}
13
$$);

返回 JSON

1
{
2
"data": {
3
"blogCollection": {
4
"edges": [
5
{
6
"node": {
7
"id": 1
8
"name": "My Blog"
9
}
10
}
11
]
12
}
13
}
14
}

请注意,pg_graphql 完全支持模式内省,因此您可以连接任何 GraphQL IDE 或模式检查工具,以查看 API 中可用的所有字段和参数。

API#

资源#