开源引擎,可将 PostgreSQL、MongoDB、SQL Server 等数据库即时暴露为带细粒度权限控制的 GraphQL API。
PostgREST/postgrest
把现有 PostgreSQL 数据库直接变成 RESTful API 的独立服务,无需手写后端代码。
- Star
- 27,726
- Fork
- 1,234
- 未关闭 Issue
- 410
- 最近提交
- 20小时前
这是什么?
PostgREST 可以直接基于现有的 PostgreSQL 数据库提供完整的 RESTful API。数据库中的表、视图和函数会通过 HTTP 暴露出来,开发者无需为基础的增删改查和查询编写自定义接口层。
大部分逻辑交由数据库处理:响应直接在 SQL 中序列化为 JSON,权限依据数据库中定义的 PostgreSQL 角色控制,数据校验依靠数据库约束完成。认证基于 JSON Web Token,每个请求都以已认证的数据库用户身份执行。API 版本通过数据库 schema 管理,并自动生成 OpenAPI 文档。
服务端使用 Haskell 编写,带有数据库连接池,且无状态,便于水平扩展。项目提供多平台的可执行文件,也提供 Docker 镜像。
核心功能
- 01根据 PostgreSQL 中的表、视图和函数自动生成 REST API。
- 02权限由数据库角色控制,认证基于 JWT。
- 03自动生成 OpenAPI 格式的接口文档。
- 04通过数据库 schema 实现 API 版本管理。
- 05通过 HTTP Range 请求头返回行数并支持分页。
- 06无状态服务,并使用数据库连接池。
适用场景
- 在已有 PostgreSQL 数据库之上快速搭建增删改查后端。
- 通过数据库视图对外提供稳定的 API,同时底层表结构可以变化。
- 为前端应用提供数据接口,而无需编写服务端端点。
快速上手
- 1
阅读适用于你所用平台的安装文档(或使用 Docker)
- 2
使用帮助命令查看可用选项
postgrest --help
使用前须知
- 需要已有的 PostgreSQL 数据库,它本身不提供数据库。
- 授权依赖数据库角色和模式设计,因此安全性需要在 PostgreSQL 中配置。
标签
常见问题
- postgrest 是什么?
- 把现有 PostgreSQL 数据库直接变成 RESTful API 的独立服务,无需手写后端代码。 PostgREST 可以直接基于现有的 PostgreSQL 数据库提供完整的 RESTful API。数据库中的表、视图和函数会通过 HTTP 暴露出来,开发者无需为基础的增删改查和查询编写自定义接口层。
- postgrest 可以免费使用吗?用的什么许可证?
- postgrest 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- postgrest 还在维护吗?
- 活跃维护中。postgrest 最近一次提交是在 2026年10月20日。
- postgrest 适合用来做什么?
- 在已有 PostgreSQL 数据库之上快速搭建增删改查后端。 通过数据库视图对外提供稳定的 API,同时底层表结构可以变化。 为前端应用提供数据接口,而无需编写服务端端点。
- postgrest 怎么安装和运行?
- 阅读适用于你所用平台的安装文档(或使用 Docker) 使用帮助命令查看可用选项: postgrest --help
- 在哪里获取 postgrest?
- 源代码和安装说明在 GitHub 上:https://github.com/PostgREST/postgrest
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
3.2万2979TypeScriptApache-2.0更新于 16小时前
基于 Postgres 的开发平台,提供托管数据库、认证、自动生成的 API、文件存储等功能,可作为 Firebase 的开源替代。
11.2万1.7万TypeScriptApache-2.0更新于 昨天
可自托管的开源 Airtable 替代品,把 PostgreSQL、SQLite 等数据库变成表格式界面并自动生成 API。
6.5万5098TypeScriptOther更新于 18小时前
根据 OpenAPI 规范自动生成多种语言的 API 客户端 SDK、服务端桩代码和文档。
2.7万7724JavaApache-2.0更新于 20小时前
基于 Django 构建 Web API 的工具包,提供序列化、认证、视图集和可浏览的 API 界面。
3万7091PythonOther更新于 17小时前