最近在使用一些低代码平台进行开发部署的时候,经常会看到一个用于部署的组件: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进行开发时,一个基本的流程如下:
- 用户创建项目: 在 Supabase 平台上创建一个新的项目。
- 配置数据库: 自定义数据库的表结构、索引和权限。
- 开发前端: 使用 Supabase JavaScript 客户端库,在前端应用程序中调用 Supabase 提供的 API,实现数据查询、更新、认证等功能。
- 部署: 将前端应用部署到任意平台,后端服务由 Supabase 托管。
处理流程
-
用户在前端发起一个请求,例如获取用户信息。
-
前端代码调用 Supabase JavaScript 客户端库,发送请求到 Supabase 的 API。
-
Supabase 的 API 接收到请求后,将请求转发给 PostgreSQL 数据库。
-
PostgreSQL 执行查询,返回结果。
-
Supabase 将查询结果返回给前端。
最后
本文主要介绍了Supabase的功能、主要特性、使用场景,并介绍了其架构组成,帮助我们对这个平台建立一个快速清晰的了解。关于Supabase的更多信息(比如架构和具体如何进行业务开发、具体实践等),本文没有做过多的介绍,建议感兴趣的朋友自己再去官网详细了解。