跳转到主要内容

概述

数据库 API 为你的数据库表提供 PostgREST 风格的 CRUD 操作。所有请求都需要身份验证请求头。

请求头


查询记录

从表中检索记录,支持过滤、排序和分页。

查询参数

参数类型描述
limitinteger返回的最大记录数(1-1000,默认值:100)
offsetinteger分页时要跳过的记录数(默认值:0)
orderstring排序方式(例如 createdAt.descname.asc
selectstring要返回的列,用逗号分隔
{field}stringPostgREST 过滤条件(例如 status=eq.active

过滤操作符

操作符描述示例
eq等于status=eq.active
neq不等于status=neq.deleted
gt大于age=gt.18
gte大于或等于price=gte.100
lt小于quantity=lt.10
lte小于或等于score=lte.50
like模式匹配(区分大小写)name=like.*john*
ilike模式匹配(不区分大小写)email=ilike.*@gmail.com
in在列表中status=in.(active,pending)
is是否为 null/true/falsedeleted_at=is.null

示例

响应

响应头

请求头描述
X-Total-Count匹配查询的总记录数
Content-Range返回的记录范围(例如 0-99/1234

创建记录

在表中创建一条或多条记录。
重要提示:请求体必须是数组,即使只创建单条记录也是如此。

请求头

请求头描述
Preferreturn=representation包含此项以返回已创建的记录

示例

响应

不包含 Prefer 请求头时:
包含 Prefer: return=representation 时:

更新记录

更新与查询过滤条件匹配的记录。

查询参数

使用过滤操作符指定要更新的记录。

请求头

请求头描述
Preferreturn=representation包含此项以返回已更新的记录

示例

响应


删除记录

删除与查询过滤条件匹配的记录。

查询参数

使用过滤操作符指定要删除的记录。

请求头

请求头描述
Preferreturn=representation包含此项以返回已删除的记录

示例

响应

不包含 Prefer 请求头时:204 No Content 包含 Prefer: return=representation 时:

错误响应

表未找到 (404)

无效查询 (400)

验证错误 (400)


示例

分页

复杂过滤条件

Upsert(插入或更新)

插入一条记录,如果与唯一约束发生冲突则更新该记录。

请求头

请求头描述
Preferresolution=merge-duplicates冲突时更新现有记录
Preferresolution=ignore-duplicates记录已存在时忽略插入

示例

响应

Upsert 需要表上存在唯一约束(例如主键或唯一索引)。冲突解决方式基于该约束。

调用 RPC 函数

通过 PostgREST RPC 执行数据库函数。支持所有 HTTP 方法(GET、POST、PUT、PATCH、DELETE)。

示例

响应


管理员接口

以下接口需要管理员身份验证。

管理员接口的请求头


列出数据库函数

获取 public 模式下的所有数据库函数。需要管理员身份验证。

示例

响应


列出数据库索引

获取所有数据库索引。需要管理员身份验证。

示例

响应


列出 RLS 策略

获取所有行级安全(Row Level Security)策略。需要管理员身份验证。

示例

响应


列出数据库触发器

获取所有数据库触发器。需要管理员身份验证。

示例

响应


列出数据库迁移

获取成功执行的自定义迁移历史记录。InsForge 会将这些记录存储在 system.custom_migrations 中,但该接口只返回迁移的元数据和已执行的语句。需要管理员身份验证。

示例

响应


创建数据库迁移

创建并立即对数据库执行一次自定义迁移。只有当每条语句都执行成功时,该迁移才会被记录。需要管理员身份验证。

请求体

字段类型是否必需描述
versionstring数字形式的迁移版本号(最多 64 位)。可以是 Drizzle 风格的顺序前缀(例如 0001),也可以是 YYYYMMDDHHmmss 格式的时间戳。版本号按数字大小比较。InsForge CLI 会为本地迁移文件名生成 14 位的 UTC 时间戳。
namestring迁移名称,只能使用小写字母、数字和连字符
sqlstring要解析并执行的 SQL 文本

示例

响应

请勿在自定义迁移中包含 BEGINCOMMITROLLBACK。InsForge 会在自己的事务中执行该迁移。

执行原始 SQL(严格模式)

使用严格清理规则执行原始 SQL 查询。禁止访问系统表和 auth.users。需要管理员身份验证。

请求体

字段类型是否必需描述
querystring要执行的 SQL 查询
paramsarray用于参数化查询的查询参数

示例

响应


执行原始 SQL(宽松模式)

使用宽松清理规则执行原始 SQL 查询。允许对系统表执行 SELECT 和 INSERT。请谨慎使用。需要管理员身份验证。

请求体

字段类型是否必需描述
querystring要执行的 SQL 查询
paramsarray用于参数化查询的查询参数

示例

响应

此接口限制较为宽松,可以访问系统表。请仅在必要时使用,并确保具备适当的授权。

导出数据库

以 SQL 或 JSON 格式导出数据库结构和/或数据。需要管理员身份验证。

请求体

字段类型是否必需默认值描述
tablesarrayall要导出的表列表
formatstringsql导出格式(sqljson
includeDatabooleantrue包含表数据
includeFunctionsbooleanfalse包含数据库函数
includeSequencesbooleanfalse包含序列
includeViewsbooleanfalse包含视图
rowLimitinteger-每个表的最大行数

示例

响应


导入数据库

从 SQL 文件导入数据库。需要管理员身份验证。

请求(multipart/form-data)

字段类型是否必需默认值描述
filefile-要导入的 SQL 文件
truncatebooleanfalse导入前清空现有表

示例

响应


批量插入或更新

从 CSV 或 JSON 文件批量插入或更新数据。需要管理员身份验证。

请求(multipart/form-data)

字段类型是否必需描述
filefile包含数据的 CSV 或 JSON 文件
tablestring目标表名
upsertKeystring用于冲突解决的列名

示例

响应