Supabase:帮助快速构建应用后端的BaaS服务

最近在使用一些低代码平台进行开发部署的时候,经常会看到一个用于部署的组件:Supabase。那这是什么呢?本文整理并组织了一些supabase的基本信息,帮助大家对这玩意有个快速的了解。

简介

Supabase 作为一个开源的 Firebase 替代品,其核心在于提供了一个完整的后端即服务 (BaaS) 平台帮助开发者快速构建和部署应用程序。它的核心功能包括:

核心功能 说明
实时数据库 (Realtime Database) 基于 PostgreSQL,提供实时数据同步功能,让前端应用可以实时获取数据库的更新。支持订阅、查询等操作,方便构建实时应用。
身份认证 (Authentication) 提供全面的用户认证系统,支持多种登录方式(邮箱、手机号、社交登录等)。可以自定义用户角色和权限,实现细粒度的访问控制。
存储 (Storage) 提供对象存储功能,用于存储用户上传的图片、视频等文件。集成 S3 兼容接口,方便与其他云存储服务对接。
边缘函数 (Edge Functions) 允许开发者在边缘节点上运行 JavaScript 函数,实现自定义逻辑。可以用于处理请求、触发事件、实现服务端渲染等。
GraphQL API 提供 GraphQL API,支持灵活的数据查询和操作。可以根据需要自定义 GraphQL schema。
REST API 自动生成基于 PostgreSQL schema 的 REST API,方便前端和移动端访问数据。

features

  • 快速开发: Supabase 提供了开箱即用的功能,如身份验证、数据库、存储等,大大加快了开发速度。
  • 实时数据: 实时订阅功能让开发者可以轻松构建实时应用。
  • 灵活可扩展: Supabase 基于 PostgreSQL,具有强大的扩展性,可以满足各种复杂的业务需求。
  • 开源: 可以自由地查看和修改源代码,具有高度的灵活性。
  • 成本效益高: Supabase 提供了免费的套餐,适合小型项目和个人开发者。

Supabase 的使用场景

Supabase在可以对以下场景发挥比较大的作用:

  • 需要快速构建 MVP 的项目: Supabase 可以帮助你快速搭建一个可用的产品原型。
  • 对数据实时性要求高的项目: Supabase 的实时订阅功能非常适合构建实时应用。
  • 需要高度自定义后端的项目: Supabase 的开源特性允许你根据自己的需求进行定制。
  • 对安全性要求高的项目: Supabase 提供了强大的安全机制,可以保护你的数据。

一些更常见的具体的应用场景如下:

  • Web 应用开发

    • 实时聊天应用: 利用 Supabase 的实时订阅功能,实现消息的实时推送。
    • 社交网络: 构建用户、帖子、评论等功能,并实现用户之间的实时互动。
    • 在线商城: 管理产品信息、用户订单、支付等功能。
    • 博客系统: 创建、编辑和发布文章,并实现用户评论和点赞功能。
  • 移动应用开发

    • 移动端应用的后端: 为 iOS 和 Android 应用提供数据存储、用户认证等服务。
    • 物联网应用: 收集和存储传感器数据,实现远程控制等功能。
  • 内部工具开发

    • 公司内部管理系统: 构建员工管理、项目管理等内部工具。
    • 数据分析平台: 收集和分析用户数据,生成报表。

架构分析

Supabase的架构主要围绕 PostgreSQL 数据库,并结合了其他开源工具,提供了一套完整的功能。关于架构的更多详情参考官方文档,这里列出其主要架构:

核心组件

对于每一个supabase项目都会由以下组件构成

组件 说明
KONG 云原生API网关
GoTrue 提供用户认证和授权功能,支持多种认证方式,如邮箱、社交登录等。
Postgrest 基于 PostgreSQL 的 RESTful API,允许开发者通过 HTTP 请求对数据库进行 CRUD 操作。
Realtime 基于 Postgres LISTEN/NOTIFY 机制实现的实时订阅功能,可以实时推送数据更新。
Storage 提供对象存储功能,用于存储用户上传的文件。
postgres-meta 用于管理你的 Postgres 的 RESTful API。获取表、添加角色并运行查询。
Edge Functions 允许开发者编写自定义函数,处理请求和响应
pg_graphql 提供graphQL的API
PostgreSQL 数据库 作为 Supabase 的数据存储核心,PostgreSQL 提供了强大的关系型数据库功能,支持复杂的查询和事务。

开发流程

当我们要基于Supabase进行开发时,一个基本的流程如下:

  1. 用户创建项目: 在 Supabase 平台上创建一个新的项目。
  2. 配置数据库: 自定义数据库的表结构、索引和权限。
  3. 开发前端: 使用 Supabase JavaScript 客户端库,在前端应用程序中调用 Supabase 提供的 API,实现数据查询、更新、认证等功能。
  4. 部署: 将前端应用部署到任意平台,后端服务由 Supabase 托管。

处理流程

  1. 用户在前端发起一个请求,例如获取用户信息。

  2. 前端代码调用 Supabase JavaScript 客户端库,发送请求到 Supabase 的 API。

  3. Supabase 的 API 接收到请求后,将请求转发给 PostgreSQL 数据库。

  4. PostgreSQL 执行查询,返回结果。

  5. Supabase 将查询结果返回给前端。

最后

本文主要介绍了Supabase的功能、主要特性、使用场景,并介绍了其架构组成,帮助我们对这个平台建立一个快速清晰的了解。关于Supabase的更多信息(比如架构和具体如何进行业务开发、具体实践等),本文没有做过多的介绍,建议感兴趣的朋友自己再去官网详细了解。

相关推荐
老兵发新帖1 小时前
NestJS 框架深度解析
后端·node.js
码出钞能力2 小时前
对golang中CSP的理解
开发语言·后端·golang
金融数据出海2 小时前
黄金、碳排放期货市场API接口文档
java·开发语言·spring boot·后端·金融·区块链
豌豆花下猫2 小时前
Python 潮流周刊#101:Rust 开发的 Python 类型检查工具(摘要)
后端·python·ai
gxn_mmf4 小时前
典籍知识问答模块AI问答功能feedbackBug修改+添加对话名称修改功能
前端·后端·bug
向哆哆4 小时前
Spring Boot快速开发:从零开始搭建一个企业级应用
java·spring boot·后端
[email protected]6 小时前
ASP.NET Core 中实现 Markdown 渲染中间件
后端·中间件·asp.net·.netcore
eternal__day11 小时前
Spring Boot 实现验证码生成与校验:从零开始构建安全登录系统
java·spring boot·后端·安全·java-ee·学习方法
海天胜景12 小时前
HTTP Error 500.31 - Failed to load ASP.NET Core runtime
后端·asp.net
海天胜景12 小时前
Asp.Net Core IIS发布后PUT、DELETE请求错误405
数据库·后端·asp.net