概述

MemFire Cloud直接从你的数据库模式中生成API。该API是:

  • 即时和自动生成:当您更新数据库时,可以通过您的 API 立即访问更改。
  • 自文档化:MemFire Cloud在Dashboard 中生成文档,在您进行数据库更改时进行更新。
  • 安全:API被配置为与MemFireDB的行级安全一起工作,配置在API网关后面,并启用了密钥授权。
  • 快速:我们的基本读取基准比Firebase快300%以上。API是MemFireDB上面的一个非常薄的层,MemFireDB做了大部分的重活。
  • 可扩展性:API可以为成千上万的同时请求提供服务,并且对无服务器工作负载有很好的作用。

除此之外,平台还提供多种不同语言的API接口,包括:

RESTful API

MemFire Cloud使用PostgREST提供了一个RESTful API。这是在MemFireDB之上的一个非常薄的API层。 它提供了你在CRUD API中需要的一切。

  • 基本的CRUD操作
  • 深度嵌套的连接,允许你在一次获取中从多个表中获取数据
  • 与MemFireDB视图一起工作
  • 与MemFireDB函数一起工作
  • 与MemFireDB的安全模型一起工作--包括行级安全、角色和授权。

实时API

Supabase提供了一个使用Realtime的实时API。您可以使用它通过WebSocket侦听数据库更改。
实时利用PostgreSQL的内置逻辑复制。只需管理Postgres发布,即可管理实时API。


开始使用

在你将表或函数添加到你的数据库后,你就可以使用API了。

创建API路由

当你创建MemFireDB表、视图或函数时,会自动创建API路由。

让我们通过创建一个名为todos(它将存储一些公共的用户信息)的表来创建我们的第一个 API 路由.
这将创建一个相应的路由todos,它可以接受GETPOSTPATCHDELETE请求。

操作步骤如下:

  1. 进入我的应用->数据表页面.
  2. 点击"新建数据表"按钮.
  3. 输入数据表名"todos".
  4. 点击"添加字段"按钮.
  5. 输入新列名称 "task" ,并选择字段类型 "text".
  6. 点击"创建"按钮.

SQL语法:

-- Create a table called "todos" with a column to store tasks.

create table todos (
  id bigint generated by default as identity primary key,
  task text check (char_length(task) > 3)
);

API URL和密钥

每个Supabase项目都有一个独特的API URL。您的 API 在一个 API 网关的保护下,每次请求都需要一个 API 密钥。

你可以在仪表板中找到密钥。操作步骤如下:

  1. 进入我的应用->概览页面.
  2. 在该页面找到您的API URL.
  3. 在该页面找到您的 anonand service_role密钥.

细节和链接。

最初提供给你两个密钥。

  • 一个 anon密钥,在浏览器环境下使用是安全的。
  • 一个 service_role 密钥,只能在服务器上使用。这个密钥可以绕过行级安全。

访问文档

MemFire Cloud 在仪表板中生成文档,并在你对数据库进行修改时进行更新。

让我们来看看我们在第一步创建的todos表的文档。

操作步骤如下:

  1. 进入我的应用-API页面.
  2. 在表和视图区域找到todos表.
  3. 使用选项卡在Javascript和cURL文档之间切换.

使用API

你可以直接通过HTTP请求与你的API交互,或者你可以使用我们提供的客户端库。

让我们看看如何向我们在第一步创建的todos'表发出请求。 使用我们提供的API URL ([SUPABASE_URL])和Key([SUPABASE_ANON_KEY]`)。

JS语法:

// Initialize the JS client
import { createClient } from '@supabase/supabase-js'
const supabase = createClient([SUPABASE_URL], [SUPABASE_ANON_KEY])

// Make a request
let { data: todos, error } = await supabase
  .from('todos')
  .select('*')

cURL语法:

# Append /rest/v1/ to your URL, and then use the table name as the route
curl '[SUPABASE_URL]/rest/v1/todos' \
-H "apikey: [SUPABASE_ANON_KEY]" \
-H "Authorization: Bearer SUPABASE_ANON_KEY"

详情和链接。

  • 当你在MemFireDB中创建一个表时,行级安全默认是禁用的。请确保你通过启用RLS来保护它。
  • 不要在浏览器或任何用户可以看到的地方暴露service_role键。
  • JS参考:select(), insert(), update(), upsert(), delete(), rpc()(调用Postgres函数)。

确保你的路由安全

操作步骤:

  1. 进入我的应用-数据表页面.
  2. 选中要启用RLS的数据表,点击"权限配置"按钮.
  3. 点击"启用RLS"按钮,启用数据表的RLS.

SQL语法:

alter table todos enable row level security;

细节和链接

  • 你的API被设计成与Postgres行级安全一起工作。如果你使用MemFire Cloud 认证,你可以根据登录的用户来限制数据。
  • 为了控制对你的数据的访问,你可以使用策略

results matching ""

    No results matching ""