PostgREST:将 PostgreSQL 数据库秒变 RESTful API
PostgREST:将 PostgreSQL 数据库秒变 RESTful API
什么是 PostgREST?
PostgREST 是一个独立的 Web 服务器,可以将您的 PostgreSQL 数据库直接转换为 RESTful API。它能够自动读取您的数据库结构,并为每个表和视图创建对应的 API 端点,让您无需编写任何后端代码就能快速构建 API。
PostgREST 的主要特性
自动 API 生成
- 自动为数据库表创建 CRUD 端点
- 支持复杂的查询操作
灵活的查询语法
- 支持过滤、排序、分页
- 支持字段选择
- 支持关联查询
安全特性
- JWT 认证支持
- 行级安全策略
- 基于角色的访问控制
性能优势
- 直接将 HTTP 请求转换为 SQL
- 高效的数据库连接池
- 低延迟响应
快速开始
https://github.com/PostgREST/postgrest
去 Releases 下一个解压出来
- 配置文件
首先创建一个 postgrest.conf
配置文件,放在解压出来的可执行文件同一个目录下:
db-uri = "postgres://postgres:707020@localhost:5432/face_attendance"
db-schema = "public"
db-anon-role = "postgres"
server-port = 3000
server-host = "127.0.0.1"
jwt-secret = "your-super-secret-jwt-token"
这个配置文件定义了:
- 数据库连接信息
- 使用的数据库 schema
- 服务器端口和主机
- JWT 密钥(用于身份认证)
然后.\postgrest.exe postgrest.conf启动
-
数据库示例
假设我们有以下数据库结构:
CREATE TYPE user_role AS ENUM ('teacher', 'student'); CREATE TABLE users ( user_id SERIAL PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(100) NOT NULL, role user_rle NOT NULL, real_name VARCHAR(50) NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP );
-
PostgREST API 使用指南
基础 CRUD 操作
POST:
POST http://localhost:3000/users Content-Type: application/json { "username": "teacher2", "password": "123456", "role": "teacher", "real_name": "王老师" }
可以看到,数据里已经有这一条新增的记录了
Get:
Patch:
Delete:
-
高级查询
GET http://localhost:3000/users?role=eq.teacher