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 文档。
启用扩展#
- 转到仪表板中的 数据库 页面。
- 在侧边栏中单击 扩展。
- 搜索 "pg_graphql" 并启用该扩展。
用法#
给定一个表
1create table "Blog"(2 id serial primary key,3 name text not null,4 description text5);67insert into "Blog"(name)8values ('My Blog');反映的 GraphQL 模式可以立即查询为
1select2 graphql.resolve($$3 {4 blogCollection(first: 1) {5 edges {6 node {7 id,8 name9 }10 }11 }12 }13 $$);返回 JSON
1{2 "data": {3 "blogCollection": {4 "edges": [5 {6 "node": {7 "id": 18 "name": "My Blog"9 }10 }11 ]12 }13 }14}请注意,pg_graphql 完全支持模式内省,因此您可以连接任何 GraphQL IDE 或模式检查工具,以查看 API 中可用的所有字段和参数。
API#
graphql.resolve:一个用于执行 GraphQL 查询的 SQL 函数。