用途
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 项目。
限制
资料未提供关于收费、价格、平台支持范围、性能效果或具体使用步骤的额外说明。