PostgREST API

从 PostgreSQL 表自动生成REST API

在任意 PostgreSQL 数据库服务器上启用 PostgREST,即可获得即时 CRUD 端点。无后端代码、无 ORM、无样板。您的 Schema 即是您的 API。

使用标准 HTTP 查询您的 API

# List users with filtering
curl https://myapp-api.sh0.app/users?select=name,email&role=eq.admin
# Insert a record
curl -X POST https://myapp-api.sh0.app/todos \
-H "Content-Type: application/json" \
-d '[object Object]'
# Joins via resource embedding
curl https://myapp-api.sh0.app/orders?select=id,total,customer(name,email)

REST API 所需的一切

PostgREST 将您的数据库变为功能完备的 API 服务器,零配置。

从 Schema 自动生成

PostgREST 自省您的 PostgreSQL 表、视图和函数,自动生成完整的 REST API。无需代码生成步骤。

筛选、分页和关联

内置查询运算符:eq、gt、lt、like、in、is 等。支持外键关联的资源嵌入。开箱即用的偏移和游标分页。

OpenAPI 规范

每个 PostgREST 实例在根路径暴露实时 OpenAPI 规范。可导入 Postman、生成客户端 SDK 或接入您的文档系统。

一键启用

在 sh0 仪表板中选择任意 PostgreSQL 数据库服务器,一键启用 PostgREST。自动配置,自动 SSL。

行级安全

利用 PostgreSQL RLS 策略在行级别控制访问。PostgREST 将 JWT 声明作为角色上下文传递,使您的策略直接生效。

自动 SSL 域名

每个 PostgREST 实例获得独立子域名,并通过 Caddy 自动配置 HTTPS。可从任何前端或移动应用安全连接。

工作原理

01

创建 PostgreSQL 服务器

从 sh0 仪表板配置 PostgreSQL 数据库服务器。支持 14 到 17 的任何版本。

02

设计您的 Schema

在数据库中创建表、视图和函数。使用内置终端或任何 PostgreSQL 客户端。

03

启用 PostgREST

为您的数据库服务器开启 PostgREST。sh0 会部署一个托管的 PostgREST 实例并自动连接。

04

通过 REST 查询

您的 API 已上线。使用标准 HTTP 方法(GET、POST、PATCH、DELETE)配合强大的查询参数进行操作。

请求流程

HTTP 请求
Caddy (SSL)
PostgREST
PostgreSQL
JSON 响应

PostgREST 直接连接 PostgreSQL。中间没有应用服务器。

不使用 PostgREST

  • x 为每张表编写 CRUD 路由
  • x 维护 ORM 模型和迁移
  • x 实现筛选、排序、分页
  • x 手动编写 API 文档
  • x 部署和扩展独立的 API 服务器
  • x 保持 Schema 和 API 同步

使用 sh0 + PostgREST

  • 从 Schema 自动生成 API
  • Schema 是唯一的事实来源
  • 内置筛选、排序、分页
  • 自动生成 OpenAPI 规范
  • 一键部署,自动 SSL
  • 通过 PostgreSQL RLS 实现行级安全

常见问题

需要编写后端代码吗? +
不需要。PostgREST 直接从您的 PostgreSQL Schema 生成 API。您定义表、视图和 RLS 策略——PostgREST 处理 HTTP 层。
可以在现有数据库上使用 PostgREST 吗? +
可以。在 sh0 管理的任何 PostgreSQL 数据库服务器上启用 PostgREST。它会自省您的现有 Schema 并立即暴露。
认证是如何处理的? +
PostgREST 使用 JWT 令牌。您可以将其与 sh0 Auth 服务 (Logto) 配合实现完整认证,也可以使用任何 JWT 签发者。令牌声明作为 PostgreSQL 角色上下文传递给 RLS。
性能如何? +
PostgREST 使用 Haskell 编写,性能极佳。它通过连接池直接连接 PostgreSQL,为查询增加的开销微乎其微。
可以只暴露部分表吗? +
可以。PostgREST 仅暴露您配置的 Schema(默认:public)。使用 PostgreSQL 角色和 GRANT 语句精确控制哪些表和操作可用。
这是 Supabase 的替代方案吗? +
PostgREST 正是 Supabase 自动生成 API 背后的核心技术。配合 sh0 的 Auth、Realtime、Functions 和 Storage,您可以获得完整的自托管 BaaS。

将数据库变为 API

不再编写样板 CRUD 代码。启用 PostgREST,更快地发布前端。