无服务器 API

Supabase直接从你的数据库模式中自动生成三种类型的API。

  • REST - 通过restful接口连接到你的数据库。
  • Realtime - 监听数据库的变化。
  • GraphQL - 使用类似于图形查询语言操作您的数据库。

所有的API都是从您的数据库中自动生成的,其设计目的是让您无需编写一行代码就能尽可能快地构建。

您可以直接从浏览器中使用它们(两层架构),或者作为您自己的API服务器(三层架构)的补充。

特征

  • 即时自动生成
    当您更新数据库时,可以通过API立即访问更改。

  • 自我记录
    Supabase在Dashboard中生成文档,当您更改数据库时,这些文档会更新。

  • 安全
    API配置为与PostgreSQL的行级安全一起工作,在启用密钥验证的API网关后面提供。

  • 速度快
    我们的基本读取基准比Firebase快300%以上。API是Postgres之上的一个非常薄的层,它完成了大部分繁重的工作。

  • 可扩展
    API可以同时处理数千个请求,并且适用于无服务器工作负载。

REST API #

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

Supabase的REST接口会自动根据你的数据库模式进行反射,并提供以下功能支持:

  • 基本的CRUD操作(创建/读取/更新/删除)
  • 深度嵌套的连接,允许你在一次获取中从多个表中获取数据
  • 可以与Postgres视图一起使用
  • 可以与Postgres函数一起使用
  • 可以与Postgres的安全模型一起使用(包括行级安全、角色和授权)

Supabase的REST API将所有请求解析为单个SQL语句,从而实现快速的响应时间和高吞吐量。

参考:

GraphQL API #

Supabase使用 pg_graphql 来在 https://<project_ref>.supabase.co/graphql/v1/ 上公开GraphQL API端点。 您可以在控制台中自动检索和查询现有 Supabase项目的 GraphQL API,或手动导航到 API 文档 > GraphQL > GraphiQL

Supabase的GraphQL接口会自动根据你的数据库模式进行反射,并提供以下功能支持:

  • 基本的CRUD操作(创建/读取/更新/删除)
  • 支持表、视图、材料化视图和外部表
  • 表/视图之间任意深度的关联关系
  • 用户定义的计算字段
  • Postgres安全模型(包括行级安全、角色和授权)

GraphQL API在单个往返中解析所有请求,因此响应时间快且吞吐量高。

参考:

Realtime API#

Supabase使用 Realtime 提供一个实时API。你可以使用它来通过websockets监听数据库的变化。 Realtime 利用了 PostgreSQL 的内置逻辑复制功能。你可以通过管理 Postgres 发布功能来管理你的 Realtime API 。

在PostgreSQL数据库中,"发布"(Publication)是一种功能,用于将数据库的更改事件传播给订阅者。它允许你定义一组要发布的表,以及发布的细节和规则。

API URL 和 密钥#

您可以在控制台找到API URL 和 密钥 Dashboard.