You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
使用 Supabase 控制台
使用 Database
复制全文
下载 pdf
使用 Database
本文介绍不同角色使用 Database 功能模块的方式与方法。​
背景信息​
Supabase 控制台的功能模块面向应用开发流程中的不同角色,提供了不同的使用方法。​
角色​
作为 BaaS 服务,Supabase 控制台的功能模块可以向应用开发流程中的不同角色:应用(APP)开发者和应用(APP)使用者提供服务。​
方法​
Supabase 控制台的 Database 功能通过两类 API 提供服务。​
  • Admin API 是指 APP 开发者配置 Supabase 的管理 API,需要 SERVICE_ROLE_KEY。​
  • Client API 是指 APP 使用者访问 Supabase 的 API,通常是在登录后调用。​
调用 Admin API 和 Client API 的方式及示例如下。​
​
API 类型​
使用者​
作用​
方式及示例​
Admin API(HTTP 接口)​
​
应用(APP)开发者​
执行初始化 DDL、DML 等​
​
  • 可使用 /postgres/query 执行 DDL 和 DML。​
  • 也可使用 /postgres/ 下其他接口(如 tables、columns)执行 DDL。参考 postres-meta。​
  • 执行 DDL 示例​
​
# 执行DDL​
curl -X POST $SUPABASE_BASE_URL/postgres/query \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{"query": "CREATE TABLE foo(id serial primary key, name text);"}'​
​
  • 执行 DML 示例​
​
# 执行DML​
curl -X POST $SUPABASE_BASE_URL/postgres/query \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{"query": "insert into table foo values(1, 'aaa');"}'​
​
Admin API(HTTP 接口)​
​
应用(APP)开发者​
查询及修改 Data API 配置​
(对应 Supabase 控制台的位置:Project Settings > Data API)​
​
  • 查询 Data API 配置​
​
# 查询 Data API 配置​
curl -X GET $SUPABASE_BASE_URL/rest/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json"​
​
  • 修改 Data API 配置​
​
# 修改 Data API 配置​
curl -X PATCH $SUPABASE_BASE_URL/rest/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"db_schema": "public,graphql_public,vault",​
"db_extra_search_path": "extensions,graphql_public,vault",​
"max_rows": 200​
}'​
​
Client API(Supabase Client SDK) ​
​
应用(APP)使用者​
在 APP 中访问 Database​
​
import { createClient } from '@supabase/supabase-js'​
const supabase = createClient(​
"<SUPABASE_BASE_URL>",​
"<SUPABASE_ANON_KEY>")​
​
async function find() {​
const { data, error } = await supabase​
.from('students')​
.select('*')​
.eq('name', 'tom')​
.gt('age', 18)​
​
if (error) {​
console.error('failed: ', err.message)​
} else {​
console.log('success: ', data)​
}​
}​
​
Client API(HTTP 接口)​
​
应用(APP)使用者​
在 APP 中访问 Database​
​
​
# curl查询表数据的示例​
curl -X GET $SUPABASE_BASE_URL/rest/v1/users?id=eq.xxx \​
-H "apikey: ${ANON_KEY}" \​
-H "Authorization: Bearer ${ACCESS_TOKEN}" \​
-H "Content-Type: application/json"​
-H "Prefer: return-representation"​
​
​
// js修改表数据的示例​
const updateUser = async (userId, updates): =>​
const response = await fetch(`${SUPABASE_BASE_URL}/rest/v1/users?id=eq.${userId}`, {​
method: 'PATCH',​
headers: {​
'apikey': '${ANON_KEY}',​
'Authorization': 'Bearer ${ACCESS_TOKEN}',​
'Content-Type': 'application/json',​
'Prefer': 'return=representation'​
},​
body: JSON.stringify(updates)​
};​
​
说明​
${ACCESS_TOKEN} 为 APP 使用者登录成功后自动获取的。​
​
​
最近更新时间:2026.06.01 21:17:51
这个页面对您有帮助吗?
有用
有用
无用
无用