PostgREST 9

PostgREST 9

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

PostgREST 9发布,新增功能包括支持内连接嵌套表、无名参数的POST请求,以及与PostgreSQL 14的兼容性更新。用户可以通过内连接过滤嵌套表数据,简化Webhook处理,并支持分区表。

🔎

延伸解读

内连接嵌套表:过滤顶层数据的新方式

PostgREST 9 新增了内连接嵌套表的功能,允许通过 !inner 关键字,基于嵌套表的过滤条件来筛选顶层表的数据。例如,在查询 messages 时,可以筛选出 users.username 为 'Jane' 的记录。这一特性适用于所有 Supabase 客户端库,并支持 gt、in 等操作符,为复杂查询提供了更灵活的手段。

无名参数函数:简化 Webhook 处理

现在,PostgREST 9 支持向具有单个无名参数的函数发起 POST 请求。这对于接收 JSON 负载的 Webhook 特别有用。例如,使用 Postmark 的 bounce webhook 时,可以创建一个接收 json 参数的函数,直接通过 rpc 调用将数据插入数据库,无需再为参数命名,简化了集成流程。

PostgreSQL 14 兼容性:自定义认证函数需更新

为了兼容 PostgreSQL 14,PostgREST 9 引入了一个破坏性变更。如果你使用了自定义认证函数并通过 PostgREST HTTP Context 获取请求信息,需要更新函数写法。例如,原先使用 current_setting('request.jwt.claim.custom-claim', true) 的地方,现在应改为 current_setting('request.jwt.claims', true)::json->>'custom-claim'。若仅使用 Supabase 默认认证函数,

❓

Q&A

PostgREST 9有哪些新功能?

PostgREST 9新增支持内连接嵌套表、无名参数的POST请求,以及与PostgreSQL 14的兼容性更新。

如何使用内连接过滤嵌套表数据?

用户可以通过内连接嵌套表来过滤数据,例如使用!inner关键字来根据嵌套表的条件过滤顶层表的数据。

无名参数的POST请求有什么用?

无名参数的POST请求方便处理JSON负载,特别适用于Webhook场景,允许直接将数据发送到数据库。

PostgREST 9与PostgreSQL 14的兼容性更新有哪些影响?

用户需要更新自定义认证函数以适应PostgreSQL 14的变化,使用默认认证函数的用户无需操作。

PostgREST 9支持哪些新特性?

除了内连接和无名参数外,PostgREST 9还支持分区表,并改进了文档和修复了多个bug。

如何处理Webhook发送的JSON数据?

可以创建一个接收原始JSON的函数,并通过rpc调用将Webhook数据直接发送到数据库。

🏷️

标签

➡️

继续阅读