RPC(数据库函数调用)
PostgREST 不仅自动暴露表/视图为 REST 接口,还支持通过 /rpc/{函数名} 端点调用 PostgreSQL 函数(Stored Function)。这让你可以把复杂业务逻辑下推到数据库层,前端通过 HTTP 一次调用即可完成多表事务、聚合计算、敏感操作等。
何时使用 RPC
REST 的 CRUD 适合简单读写,但以下场景更适合用 RPC:
| 场景 | 说明 | 示例 |
|---|---|---|
| 数据聚合 | 统计、排行榜、报表 | 「我的总订单金额」「热销 TOP 10」 |
| 多表事务 | 一次操作涉及多个表的原子写入 | 下单同时减库存、写流水 |
| 复杂校验 | 简单 RLS 表达不了的业务规则 | 「每天最多创建 3 条」「限时秒杀剩余数」 |
| 敏感操作 | 需要绕过 RLS 但要受限的特权动作 | 「重置密码」「发放优惠券」 |
| 服务端计算 | 客户端不应承载的运算 | 价格计算、加密 |