建一张表就有完整API:InsForge 的 PostgreSQL 自动 API 生成新手指南
【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge
过去,给一张新表配齐后端意味着写五段东西:建表 SQL、路由、鉴权、参数校验、错误处理。在InsForge里,你只写一句建表语句,对应的 REST 接口就已经在线——这就是它的核心能力PostgreSQL 自动 API 生成,下面从新手视角完整讲一遍。
它是什么
InsForge 是一个开源(Apache 2.0)的一体化后端平台,同时面向 AI 编码代理和开发者,每个项目自带一套完整的 PostgreSQL 15 数据库。底层由 PostgREST v12.2 把表结构直接翻译成 REST 端点,配合 JWT 认证和行级安全,数据库、认证、存储、函数等后端组件开箱即用。对新手来说,你不必先学会"搭后端",就能开始写应用。
手把手:一条建表语句如何变成整套 API
这对你意味着什么:从"有了表"到"API 能用"之间没有任何人工步骤,也不用重启任何服务。链路很直接:你在仪表板的表编辑器里建表,或者往迁移文件里写 DDL;SQL 生效后,PostgREST 会自动读取 schema 元数据,把新表映射成端点,立即可调。
最快的建表方式:迁移文件
CREATE TABLE posts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title TEXT NOT NULL, content TEXT, published BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT NOW() );保存并应用后,以下端点同时可用:
GET /api/database/records/posts:查询,支持过滤、排序、分页POST /api/database/records/posts:新建,注意请求体必须是数组,单条也要包一层PATCH /api/database/records/posts:按条件更新DELETE /api/database/records/posts:按条件删除POST /api/database/rpc/{函数名}:调用数据库函数
🧰 开箱即得的能力:查询、权限与实时推送
这意味着过滤、鉴权、推送这些"脏活"你都不用管,平台已经做好了。具体包括:
- PostgREST 风格查询:所有过滤条件写在 URL 参数里
- 行级安全(RLS):每个请求携带 JWT,策略在数据库层强制执行,REST、SDK、实时订阅共用同一套规则
- 实时推送:表变更通过 WebSocket 频道推给订阅的客户端
- 向量检索:内置 pgvector,支持 HNSW 与 IVFFlat 索引
- 类型化客户端:TypeScript、Swift、Kotlin SDK 以及纯 REST,共四种
查询语法速查表
| 写法 | 作用 | 示例效果 |
|---|---|---|
status=eq.active | 精确等值过滤 | 只返回激活状态的行 |
name=ilike.*john* | 不区分大小写的模糊匹配 | 按关键字搜姓名、邮箱 |
created_at=gte.2024-01-01 | 范围过滤(gt、lt、lte 同理) | 查某个时间点之后的数据 |
deleted_at=is.null | 空值判断 | 软删除表中排除已删行 |
select=id,title&order=createdAt.desc&limit=10 | 指定字段、排序、分页 | 只取需要的列 |
适合谁,不适合谁
这帮你快速做选型判断:它是加速器,不是万能后端。
适合:
- 全栈快速起步:建完表就能联调前端,仓库里的 ML 实验跟踪器示例 就是纯靠自动 API 跑起来的
- 同一个 API 同时服务 Web 和移动端(TS / Swift / Kotlin SDK)
- 让 AI 编码代理通过 MCP 直接操作后端:建表、跑迁移、读日志
不适合:
- 业务逻辑很重、必须写自定义服务端代码的系统(自动 API 只覆盖标准 CRUD)
- 对响应结构、批量协议等有严格自定义契约要求的团队
- 复杂 RLS 策略下的超大规模查询,策略本身会带来额外开销
⚠️ 避坑清单
- 主键用 UUID 加
gen_random_uuid()默认值,客户端就不用自己造 ID。 - 顺手加上
created_at/updated_at时间戳列,排序和增量同步都靠它。 - 高频过滤列记得建索引,PostgREST 不会替你猜。
- 每张表开启 RLS 并写好策略,否则匿名 key 就能读写全表。
- 列表页永远带
limit和offset:默认一次返回 100 条,单页上限 1000 条。
🔌 三步接入
从装好到第一条数据写入,三步足够:
- 安装并登录:
npx @insforge/cli login,再执行npx @insforge/cli link --project-id <项目ID>(项目 ID 在控制台 URL 里) - 建表并应用:
npx @insforge/cli db migrations new create-posts生成迁移文件,写好 SQL 后执行npx @insforge/cli db migrations up --all - 调用 API 验证:请求带上
Authorization: Bearer <JWT>,访问GET /api/database/records/posts;完整参数见 REST API 参考
写在最后
InsForge 把"建表到可用 API"之间的工程活压缩成一句 SQL,剩下的时间都可以留给业务逻辑。
延伸阅读:数据库总览、迁移管理
【免费下载链接】InsForgeThe all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.项目地址: https://gitcode.com/GitHub_Trending/in/InsForge
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考