免费开源的后端API服务-supabase安装和使用-简直是前端学习者福音

news2024/10/7 13:20:47

文章目录

    • 它是什么
    • 安装和部署
        • 关于安装
        • 关于部署
          • 1、注册用户
          • 2、创建组织
          • 3、创建项目
    • 创建数据库表(填充内容)
        • 填充数据库表
    • 使用postman联调API

它是什么

一个开源免费的后端框架,firebase的替代品。可以简单理解类似于headless cms,但是不仅仅只提供内容,它还集成了服务订阅、即时API,用户身份认证(包括第三方身份认证,比如使用githubGoogle等账号实现快速登录和注册)、边缘函数、文件存储等功能。

Supabase is an open source Firebase alternative.

Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime subscriptions, Storage, and Vector embeddings.

截止到2024-7-1的github start数:68.2K

安装和部署

关于安装

首先,它是基于SaaS云服务的。意味着,你可以部署到自有服务器,也可以免费注册一个它的账户,然后直接创建一个组织和项目来享受免费的在线的 API后端服务。

因为只是试用,所以我并没有打算部署到自有服务器中。

那就先薅一下羊毛吧。

免费用户也拥有蛮不错的配置:

订阅服务

免费用户能享受到的配置包括:

  • 无限的接口请求
  • 5w个月活用户
  • 500M数据库存储空间
  • 5GB宽度
  • 1GB文件存储(存储图片、文件、音视频等)

这个配置如果是自己在国内云厂商买的,即使是新用户,起码也值99元首年了。

关于部署

可以部署到自有服务器,后续将更新教程。

这里我们是直接在它的官网上创建一个新的项目就可以使用它的API。

所以这里的部署指的是如何注册用户、创建组织和项目等。

1、注册用户

首先的好消息是,国内可用,不需要翻墙,而且速度有保障。

注册只需要一个email即可,然后到email接收一个验证码进行认证即可。不需要填写手机号、身份认证等。

免费注册用户

2、创建组织

创建组织,并不代表要公司名义,可以是个人。

组织名称可以在后续修改。

另外虽然我们用的是免费计划,但是可以创建多个组织和项目。

创建组织

3、创建项目

创建项目,相当于是在安装一个backend了,即后端服务。

它会帮我们创建一个PostgreSQL的数据库。

在这一步,我们只需要输入项目名称,数据库密码,然后选择区域即可。

国内建议选择新加坡。

区域选择

一切就绪,现在你就有了一个没有任何内容的后台了。

dashboard

它会给你生成一个项目的后端地址,在该地址中可以看到访问key,管理项目,对项目数据进行增删改查等。

但是它提供的supabase创建的是纯后台,只提供了一个简单的后台管理UI能对数据进行CRUD操作,所以更多时候我们需要通过前端框架,比如vuenuxtjs等进行开发来实现你的后台管理或前端页面。

这也意味着它是一个绝佳的纯API接口服务,能让我们随心制造自己想要的数据并通过接口来访问。

接下来,我们可以在该后台添加一张数据库表,以便使用postmanAPI调试工具来调试接口,为后续的API开发做准备。

创建数据库表(填充内容)

创建数据库表有2种方式,一种是可视化的table editor,另外一种是SQL editor

接下来我将使用第二种方式来运行SQL创建一张Users表。

点击SQL editor,在textarea中输入如下SQL代码:

-- Step 1: Create the trigger function
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
RETURNS TRIGGER AS $$
BEGIN
   NEW.updated_at = NOW();
   RETURN NEW;
END;
$$ LANGUAGE plpgsql;

-- Step 2: Create the users table
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    password_hash TEXT NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Step 3: Create the trigger to update the updated_at column
CREATE TRIGGER update_timestamp
BEFORE UPDATE ON users
FOR EACH ROW
EXECUTE FUNCTION trigger_set_timestamp();

在以上SQL中,我创建了一个触发器,为什么创建一个trigger,是因为:为了确保 updated_at 字段能够在当前行被修改后自动更新。

To ensure the updated_at column is automatically updated whenever a row is modified.

这一步还只是创建了一个包含了指定字段的空白的数据库表

填充数据库表

我们可以手动插入一条数据

插入一条数据

点击insert,这样就用可视化的方式插入了一条数据记录。

现在这个项目就已经成型了。

但是在我们使用前端创建UI界面前,我们啥都看不到。

使用postman联调API

下一篇文章,我将使用postman来联调API,为接下来的UI开发做准备。

如果你在web前端开发、面试、前端学习路线有困难可以在下方加我名片,免费答疑,行业深潜多年的技术牛人帮你解决bug。

我可提供web前端开发,网站开发、技术咨询、答疑、直播讲座等服务

祝你能成为一名优秀的WEB前端开发工程师!

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

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

相关文章

气膜建筑锚固系统:稳如泰山的保护屏障—轻空间

在建设气膜建筑时,很多人都会担心它是否能在强风或恶劣天气中保持稳定。然而,气膜建筑的锚固系统使得这一担忧完全多余。轻空间将揭秘气膜建筑锚固系统的独特设计和卓越性能,展示其如何保证气膜建筑在任何天气条件下都能稳如泰山。 气膜建筑锚…

Error: A JNl error has occurred, please check your installation and try again.

Eclipse 运行main方法的时候报错:Error: A JNl error has occurred, please check your installation and try again. 一、问题分析 导致这个问题,主要原因,我认为是在新版本中,默认的JDK编译版本与我们配置的JDK版本不一致导致的…

JavaScript将参数传递给事件处理程序

本篇文件我们将实现导航栏中,选中时候,会将您选中的进行高亮显示; ● 首先我们来获取我们想要的HTML元素 const nav document.querySelector(.nav);● 接着我们来写选中的高亮显示 nav.addEventListener(mouseover, function (e) { //鼠…

公网环境使用Potplayer远程访问家中群晖NAS搭建的WebDAV听歌看电影

文章目录 前言1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透,映射至公网5 使用固定地址在potplayer访问webdav 前言 本文主要介绍如何在Windows设备使用potplayer播放器远程访问本地局域网的群晖NAS中的影视资源&#xff…

NC13611 树(dfs序+区间dp)

链接 思路&#xff1a; 容易知道对于同一种颜色的子图一定是仅由该颜色的点连通的。设我们要划分的个数为x&#xff08;x<k&#xff09;&#xff0c;也就是说我们要选出x-1条边&#xff0c;这里有种情况。那么我们需要选出x种颜色&#xff0c;这里有种情况。然后我们需要将…

事过无悔:人生中的释怀之道

在纷繁复杂的人生旅途中&#xff0c;我们常常会面临各种选择。这些选择&#xff0c;如同指引我们前行的路标&#xff0c;有时让我们欣喜&#xff0c;有时让我们遗憾。然而&#xff0c;我渐渐发现&#xff0c;事过无悔&#xff0c;是我们在面对这些选择时最顶级的释怀之道。 首…

CNN的小体验

用的pytorch。 训练代码cnn.py&#xff1a; import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms import torch.nn.functional as F# 定义超参数 num_epochs 10 batch_size 100 learning_rat…

2024第17届中国西部(重庆)留学移民海外置业展览会

2024第17届中国西部&#xff08;重庆&#xff09;留学移民海外置业展览会 邀请函 主办单位&#xff1a; 中国西部教体医融合博览会组委会 承办单位&#xff1a;重庆中博展览有限公司 展会背景&#xff1a; 成都和重庆是中国新一线城市&#xff0c;是西部经济的核心增长极&a…

samba服务的搭建与使用

关闭selinux #暂时关闭selinux 查看selinux状态 [rootlocalhost ~]# getenforce Disabled [rootlocalhost ~]# 如果此处是‘enforcing’&#xff0c;则执行下列代码 [rootlocalhost ~]# setenforce 0 再次查看selinux状态 [rootlocalhost ~]# getenforce permissive #永久关…

舞会无领导:一种树形动态规划的视角

没有上司的舞会 Ural 大学有 &#x1d441; 名职员&#xff0c;编号为1∼&#x1d441;。 他们的关系就像一棵以校长为根的树&#xff0c;父节点就是子节点的直接上司。 每个职员有一个快乐指数&#xff0c;用整数 &#x1d43b;&#x1d456; 给出&#xff0c;其中1≤&…

【Llama 2的使用方法】

Llama 2是Meta AI&#xff08;Facebook的母公司Meta的AI部门&#xff09;开发并开源的大型语言模型系列之一。Llama 2是在其前身Llama模型的基础上进行改进和扩展的&#xff0c;旨在提供更强大的自然语言处理能力和更广泛的应用场景。 以下是Llama 2的一些关键特性和更新点&am…

1Python的Pandas:基本简介

1. Pandas的简介 Pandas 是一个开源的 Python 数据分析库&#xff0c;由 Wes McKinney 在 2008 年开始开发&#xff0c;目的是为了解决数据分析任务中的各种需求。Pandas 是基于 NumPy 库构建的&#xff0c;它使得数据处理和分析工作变得更加快速和简单。Pandas 提供了易于使用…

mac|浏览器链接不上服务器但可以登微信

千万千万千万不要没有关梯子直接关机&#xff0c;不然就会这样子呜呜呜 设置-网络&#xff0c;点击三个点--选择--位置--编辑位置&#xff08;默认是自动&#xff09; 新增一个&#xff0c;然后选中点击完成 这样就可以正常上网了

网络编程:UDP编程笔记

1.字节序的概念和转换 小端格式: 低位字节数据存储在低地址 大端格式: 高位字节数据存储在低地址 在主机上时为小端存储,在网络上时为大端,所以接收到数据时,要转为小端口 如下图: #include <arpa/inet.h> 发送者调用的函数: uint32_t htonl(uint32_t hostlong); //转…

【工具推荐】ONLYOFFICE8.1版本编辑器测评——时下的办公利器

文章目录 一、产品介绍1. ONLYOFFICE 8.1简介2. 多元化多功能的编辑器 二、产品体验1. 云端协作空间2. 桌面编辑器本地版 三、产品界面设计1. 本地版本2. 云端版本 四、产品文档处理1. 文本文档&#xff08;Word)2. 电子表格&#xff08;Excel&#xff09;3. PDF表单&#xff0…

Linux——移动文件或目录,查找文件,which命令

移动文件或目录 作用 - mv命令用于剪切或重命名文件 格式 bash mv [选项] 源文件名称 目标文件名称 注意 - 剪切操作不同于复制操作&#xff0c;因为它会把源文件删除掉&#xff0c;只保留剪切后的文件。 - 如果在同一个目录中将某个文件剪切后还粘贴到当前目录下&#xff0c;…

芒果YOLOv10改进122:注意力机制系列:最新结合即插即用CA(Coordinate attention) 注意力机制,CVPR 顶会助力分类检测涨点!

论文所提的Coordinate注意力很简单,可以灵活地插入到经典的移动网络中,而且几乎没有计算开销。大量实验表明,Coordinate注意力不仅有益于ImageNet分类,而且更有趣的是,它在下游任务(如目标检测和语义分割)中表现也很好。本文结合目标检测任务应用 应专栏读者的要求,写一…

Jasper studio报表工具中,如何判断subDataSource()子报表数据源是否为空

目录 1.1、错误描述 1.2、解决方案 1.1、错误描述 今天在处理一个有关Jasper Studio报表模板制作的线上问题&#xff0c;需要根据某个报表子数据源是否为空&#xff0c;来决定对应的组件是否显示&#xff0c;找了好久的资料都没有实现&#xff0c;最后找到一种解决办法。就是…

MySQL架构和性能优化

文章目录 一、MySQL架构架构图存储引擎MyISAM引擎特点InnoDB引擎特点管理存储引擎 二、性能优化索引索引管理EXPLAIN 工具使用profile工具 监控 一、MySQL架构 架构图 存储引擎 MySQL提供了多种存储引擎供用户选择&#xff0c;每种存储引擎都有自己的特点和使用场景。 InnoDB…

【机器学习】FFmpeg+Whisper:二阶段法视频理解(video-to-text)大模型实战

目录 一、引言 二、FFmpeg工具介绍 2.1 什么是FFmpeg 2.2 FFmpeg核心原理 2.3 FFmpeg使用示例 三、FFmpegWhisper二阶段法视频理解实战 3.1 FFmpeg安装 3.2 Whisper模型下载 3.3 FFmpeg抽取视频的音频 3.3.1 方案一&#xff1a;命令行方式使用ffmpeg 3.3.2 方案二&a…