SuperAPI AI 工具集

supabase-api

编程与开发

查看项目

更新于 10-15 14:00

技能介绍

用途

Supabase API 技能是一份 Supabase JavaScript 客户端与 REST API 的参考文档,用于在集成 Supabase、设置客户端或直接使用 REST 端点时提供操作指引。

主要能力

客户端初始化

安装命令为 npm install @supabase/supabase-js。

浏览器客户端通过 createClient 创建,传入项目 URL 与 anon key。可结合 TypeScript 类型使用,例如从 ./database.types 导入 Database 类型并传入 createClient<Database>。

服务器客户端(Service Role)使用 SUPABASE_SERVICE_ROLE_KEY,并设置 auth: { autoRefreshToken: false, persistSession: false }。

自定义选项支持配置 auth(如 persistSession、autoRefreshToken、storage、storageKey)、global.headers、db.schema 以及 realtime.params.eventsPerSecond。

REST API 直接调用

API URL 格式为 https://<project-ref>.supabase.co/rest/v1/<table>。请求头包括 apikey、Authorization、Content-Type,以及可选的 Prefer: return=representation。

支持的操作包括:

  • Select(GET):支持指定列、过滤、分页(limit/offset 或 Range 头)、排序、获取计数(Prefer: count=exact)。
  • Insert(POST):使用 Prefer: return=representation 返回数据。
  • Update(PATCH):按条件更新。
  • Upsert(POST):使用 Prefer: return=representation,resolution=merge-duplicates。
  • Delete(DELETE):按条件删除。

过滤操作符包括:eq、neq、gt、gte、lt、lte、like、ilike、is、in、cs、cd、or、and。

JavaScript 客户端操作

数据库操作:select、insert、update、upsert、delete、rpc。

认证操作:signUp、signInWithPassword、signOut、getUser、getSession、onAuthStateChange。

存储操作:upload、download、getPublicUrl、createSignedUrl、remove、list。

实时操作:通过 channel 订阅 postgres_changes、broadcast、presence(track、presenceState),以及 removeChannel 取消订阅。

边缘函数:通过 supabase.functions.invoke 调用。

错误处理与类型

错误对象包含 code、message、details、hint。常见错误码包括:PGRST116(单行预期但无返回)、PGRST301(单行预期但多行返回)、23505(唯一约束冲突)、23503(外键冲突)、42501(RLS 策略违规)、42P01(表不存在)。

TypeScript 类型可通过 supabase gen types typescript --local > database.types.ts 生成。类型助手包括 Database['public']['Tables']['users']['Row']、Insert、Update,以及 QueryData 用于查询结果类型。

使用方式

按照文档中的安装命令安装依赖,根据运行环境选择浏览器或服务器客户端初始化方式,然后调用相应的数据库、认证、存储、实时或边缘函数 API。也可直接使用 REST API 端点,按格式构造请求头与查询参数。

适用场景

适用于需要集成 Supabase 的项目,包括前端应用、服务端应用、需要直接调用 REST API 的场景,以及需要类型安全数据库操作的 TypeScript 项目。

限制

资料未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的额外说明。