Supabase:无需后端代码的 Web 开发完整解决方案

news/2025/10/11 14:44:22/文章来源:https://www.cnblogs.com/aopstudio/p/19134256

在现代 Web 应用开发中,构建 MVP(最简可行产品)时,后端基础设施的搭建常常成为主要瓶颈。开发者需要处理数据库、API、用户认证、权限控制、文件存储等多个模块,开发成本较高。

Supabase 提供了一种替代方案:它以 PostgreSQL 为核心,通过一系列集成服务,将数据库、API、认证、实时通信等功能整合在一起,使开发者不用编写后端代码就能够快速构建完整的后端系统。

本文将系统性地介绍 Supabase 的核心机制与工作流程,帮助理解其如何实现“后端即服务(BaaS)”的开发模式。


一、Supabase 的本质:一个增强的 PostgreSQL 实例

Supabase 的底层是一个标准的 PostgreSQL 数据库。它并非使用私有或封闭的数据引擎,而是基于开源的 PostgreSQL 构建,并在此基础上提供了一系列附加服务。

这意味着:

  • 可以使用任何兼容 PostgreSQL 的客户端工具(如 DBeaver、TablePlus)直接连接。
  • 支持 PostgreSQL 的高级特性,如 JSONB、全文检索、GIS、触发器、函数、视图等。
  • 可通过 SQL 编辑器执行自定义查询或数据迁移。

在 Supabase 控制台上方的Connect菜单中可以获取连接信息:
截屏2025-10-11 08.29.25

其中给出了各种方式连接数据库的方法,包括直接通过客户端工具连接,在前端框架中连接,在ORM工具中连接等等:
截屏2025-10-11 08.30.15

Supabase 拥有多种资费档位,其中免费计划包含 500MB 存储、5万月请求和 1GB 文件存储,已经足够个人项目使用
截屏2025-10-11 08.57.57

二、自动 API 生成:PostgREST 的作用

Supabase 的一个核心特性是:在创建数据库表后,系统会自动生成对应的 RESTful API

这背后的关键技术是 PostgREST,一个将 PostgreSQL 数据库直接映射为 REST API 的开源项目。

例如,创建一个待办事项表todos

保存后,Supabase 会为该表暴露以下接口:

操作 方法 URL
查询所有待办 GET /rest/v1/todos
新增待办 POST /rest/v1/todos
更新指定待办 PATCH /rest/v1/todos?id=eq.1
删除指定待办 DELETE /rest/v1/todos?id=eq.1

同时查询支持多种操作符,如 eq, neq, gt, lt, like, in 等,而且可组合使用。例如:

/rest/v1/todos?status=eq.active&priority=gte.2

这些 API 无需手动编写,由 PostgREST 在运行时动态生成。

在控制台的API Docs页面

截屏2025-10-11 08.32.48

点击表名,就可以查看相关的API文档

截屏2025-10-11 08.43.32

三、官方SDK

Supabase 提供官方 的JavaScript SDK @supabase/supabase-js,用于简化与后端服务的交互。

import { createClient } from '@supabase/supabase-js'const supabase = createClient('https://your-project.supabase.co',process.env.SUPABASE_ANON_KEY
)// 查询待办事项
async function fetchTodos() {const { data, error } = await supabase.from('todos').select('*').order('created_at', { ascending: false })if (error) console.error(error)else return data
}// 添加新任务
async function addTodo(title) {const { error } = await supabase.from('todos').insert([{ title }])if (error) throw error
}// 标记完成
async function markDone(id) {await supabase.from('todos').update({ is_done: true }).eq('id', id)
}

通过该 SDK,前端可以直接与数据库交互,实现完整的 CRUD 操作,而无需额外编写后端服务。

除此之外,也有其他语言的SDK版本
截屏2025-10-11 09.05.13


四、身份认证系统

Supabase 内置了 Supabase Auth,一个基于 JWT 的身份认证服务,支持多种登录方式:

  • 邮箱密码 / Magic Link
  • OAuth 第三方登录(Google、GitHub、Apple 等)
  • 自定义 JWT 登录(适用于 SSO 集成)

用户登录后,SDK 会自动管理 JWT,并在后续请求中携带该凭证。

const { data, error } = await supabase.auth.signInWithPassword({email: 'user@example.com',password: 'password'
})

登录成功后,所有数据库操作都会携带用户身份信息。在数据库层面,可通过 auth.uid() 函数获取当前用户 ID,用于权限判断或数据绑定。


五、权限控制:行级安全(RLS)

Supabase 使用 PostgreSQL 的 Row Level Security(RLS) 实现细粒度的访问控制。

Authentication - Policies菜单中可以设置为指定的表开启RLS:

截屏2025-10-11 08.46.34

启用 RLS 后,数据库会默认拒绝所有操作,除非显式定义允许的策略。

这也是很多新手容易踩坑的地方,我明明已经按照文档说明设置了数据库连接,为什么查询不到数据?多半情况下就是因为开启了RLS

RLS 的优势在于:权限逻辑直接定义在数据库层,对所有访问路径(REST、Realtime、SQL 客户端)均生效,避免了在应用层重复实现权限校验。

针对用户身份认证和权限控制的具体实践,将在后面的文章中详细说明


六、实时数据同步

Supabase 提供 Realtime 服务,基于 WebSocket 实现数据库变更的实时推送。

开发者可以订阅特定表或查询的变更事件,支持的事件类型包括 INSERTUPDATEDELETETRUNCATE

Realtime 服务同样受 RLS 策略保护,只有被授权的数据变更才会推送给客户端。


七、文件存储

Supabase 提供对象存储服务(Storage),类似于 AWS S3,可用于存储图片、文档等文件。

存储权限也可通过 RLS 策略控制,例如限制用户只能上传到自己的目录。


八、扩展能力

Supabase支持安装PostgreSQL扩展来增强能力,在Database - Extensions菜单中即可找到能安装的扩展列表

截屏2025-10-11 08.50.49

尤其需要提一下的是,Supabase 支持安装 PostgreSQL的vector 扩展,这使得 PostgreSQL 能够存储和查询向量数据,适用于语义搜索、RAG(检索增强生成)等现在流行的 AI 场景。


九、开源与自托管

Supabase 不仅是一个云服务,更是一个完全开源的项目。其所有核心组件(包括数据库接口、认证系统、实时引擎、存储服务等)均在 GitHub 上公开:https://github.com/supabase/supabase

这使得用户可以自行部署Supabase到自己的服务器上运行,同时可以进行定制化二次开发以更加配合业务场景。

结语

Supabase 是一个以 PostgreSQL 为核心,围绕开发者体验构建的集成化后端平台。它的核心理念在于:将数据库作为应用开发的起点,通过自动化和标准化的方式,减少重复性的后端开发工作

围绕 PostgreSQL,Supabase 构建了一个统一的服务体系。开发者可以在一个平台上完成数据建模、接口暴露、权限配置、文件管理与 AI 集成,避免了在多个服务之间切换和集成的复杂性。

Supabase 大大减少了在底层基础设施和环境配置上需要投入的精力,尤其适合个人开发者或小型开发团队使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halo RAG!

Halo AI 助手插件最新版本深度集成了 RAG 问答功能,支持将 Halo 文章或 Docsme 文档作为知识库,为访客提供智能问答服务。用户需先创建知识库,配置嵌入模型并选择内容范围以建立索引;随后创建问答应用,关联知识库…

拼叨叨砍价系统:实体店低成本引流的营销利器

在互联网营销深入各行业的当下,“砍一刀” 凭借强社交裂变属性,已成为大众熟知的营销模式。拼叨叨砍价系统基于这一模式,针对实体店商家营销痛点,打造出轻量化、易操作的砍价活动模块,支持微信公众号部署,能帮助…

2025 自动门生产厂家最新推荐榜:权威筛选优质品牌,含选购指南与实力厂家深度解析

在出入口自动化浪潮下,自动门已成为商业综合体、医院、工业厂区等场景的刚需设备,但其市场呈现 “繁荣与乱象并存” 的态势。部分品牌缺乏核心技术,产品故障率高、寿命短,无形中增加使用成本;售后体系缺失导致故障…

grafana-使用grafana-image-renderer:v4.0.17渲染仪表盘图像

grafana-使用grafana-image-renderer:v4.0.17渲染仪表盘图像v4.0.17需要grafana版本在11.3.8以上。我的是centos7, 升级grafana很简单,备份一下数据和配置,然后停掉grafana服务,然后使用【rpm -Uvh 新版本的rpm包 …

医德出诊排班挂号管理系统:医院高效运营与便民服务的智能解决方案

在数字化医疗浪潮下,传统挂号模式的低效、信息不透明等问题日益凸显,患者就医体验不佳,医院管理压力也持续增加。医德出诊排班挂号系统作为一款聚焦医疗服务场景的数字化工具,依托微信公众号生态,整合出诊排班、预…

一佳教育培训课程系统小程序:一站式教育数字化解决方案

在数字化教育浪潮下,培训机构对高效、多功能的线上教学管理工具需求迫切。一佳教育培训课程系统小程序应运而生,涵盖微信小程序版本,支持微擎系统交付,集课程管理、学员运营、营销推广、商城功能于一体,以加密源码…

SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施

本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。作者:顾汉杰(执少)"纸上得来终觉浅,绝知此事要躬行。" —— 陆游在 LLM 应用快…

2025 木饰面源头厂家最新推荐榜单:21 年标杆企业领衔,背景墙/全屋 /格栅/碳晶板全品类最新推荐及选购指南

木饰面市场正面临性能适配难、供货周期长、品质参差不齐的行业痛点:家装中潮湿区域需防水板材、高端空间看重环保平整度,公装对防火抗菌要求严苛,而大小订单交付失衡问题普遍。同时,近年新锐品牌涌现与技术迭代,让…

2025 年北京市清理化粪池公司最新推荐排行榜:聚焦高压技术与全城服务的权威甄选朝阳区/丰台区/海淀区/通州区清理化粪池厂家推荐

在城市化持续推进的当下,化粪池清理作为维护城市环境卫生、保障管道系统通畅的核心环节,其服务质量直接关系到居民生活舒适度与企业运营效率。然而当前行业乱象频发,部分企业设备陈旧导致清理不彻底,不仅残留污垢易…

报表方案Stimulsoft 2025.4 重磅发布!新增AI报表助手、C#脚本支持、全新图表类型等多项功能!

全球知名的报表解决方案服务商 Stimulsoft 正式发布2025.4 版本!该版本面向报表、仪表盘与可填写PDF表单的开发者,带来了多项令人期待的新特性,包括 Reports.JS 中运行 C# 脚本的支持、AI 智能报表助手、全新3D图表…

Prometheus的Exporter的数据采集机制

Prometheus的Exporter的数据采集机制Prometheus的Exporter采集器通过一套精巧的架构实现数据采集与暴露,而其个性化定制能力则得益于开放的客户端库和灵活的设计模式。下面我们深入解析其工作原理和定制方法。 🔄 E…

2025 年珠三角 / 中山 / 东莞 / 佛山厂房出售公司推荐:中创集团产业生态型厂房的价值与服务解析

在广东省 “坚持实体经济为本、制造业当家” 的发展导向下,《广东省加快扩大工业有效投资实施方案(2025—2027 年)》明确提出要打造高水平产业承载平台,聚焦新材料、生物医药、先进制造等新赛道培育主导产业。当前…

CTFshow-web方向(更新中)

萌新杯 intval与preg_match绕过方法: 进制绕过二进制或者八进制或者十六进制等等 双重取反~~绕过有时候需要编码需要绕过的字符$a=~("system"); echo urlencode($a);换行\n绕过 编码绕过SQL查询中,如果我们…

拷贝和上传文件,涉及隐私协议

如果使用拷贝和复制粘贴功能,以及使用从微信上传文件的功能,需要在weixin后台完善隐私协议。wx.setClipboardData({duration: 2000,title: 成功,data: name,icon: success,}); 拷贝 错误提示: setClipboardData:fai…

2025储罐厂家,钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐各类型最新推荐榜:品质卓越与技术创新的行业先锋!

随着工业技术的不断进步,储罐作为化工、石油、食品等众多行业不可或缺的关键设备,其品质和性能直接影响着企业的生产效率和安全。为了帮助筛选储罐品牌,特此发布权威推荐榜单,为采购决策提供专业参考价值。一、储罐…

2025 年国内标志牌生产厂家最新推荐排行榜:聚焦优质企业助力客户精准选择道路/限速/公路/施工/警示/限高/三角/安全标志牌厂家推荐

在当前道路安全设施行业快速发展的背景下,标志牌作为保障道路通行安全与效率的关键设施,其市场需求持续增长。然而,市面上标志牌生产厂家数量繁杂,产品质量、生产能力、服务水平差异显著,部分厂家存在材质不达标、…

在Scala中,如何在泛型类中使用类型参数?

在Scala中,泛型类的类型参数使用方括号 [] 声明,语法和使用方式与Java类似但更灵活。以下是Scala泛型类中使用类型参数的详细示例: // 1. 基本泛型类定义 class Box[T](val content: T) {// 可以直接使用类型参数T作…

Maple 2025 来了!AI 赋能 + 6000 + 命令,破解数学计算、科研与教学痛点

做科研时,复杂的逆拉普拉斯变换算到崩溃?教数学时,手动批改作业效率低还难出同类题?写代码时,数学模型转 Python/C 要反复调试?别愁了 —— 数学软件领域的革新之作Maple 2025已上线,从核心引擎到用户体验全面升…

2025 护眼灯生产厂家最新推荐榜:精选五强资深与新锐品牌,深度解析品质口碑与选购指南

国人日均用眼时长已突破 8 小时,护眼灯市场需求年均增长 18.7%,但行业乱象愈发凸显:国家市场监督管理总局抽查显示 23% 样品存在蓝光超标、频闪等问题,虚假宣传更是屡见不鲜。传统品牌与新锐势力并存的市场中,消费…

2025 年护眼吸顶灯最新推荐榜:权威筛选五强品牌,技术与口碑双维度深度剖析

随着居家用眼场景日益多元,护眼吸顶灯成为家庭照明刚需,但市场乱象却持续困扰消费者。部分品牌以 “护眼” 为噱头,实际产品蓝光危害超标、频闪严重,既不符合 RG0 无危害标准,也未达到 Ra90 以上显色指数要求,长…