Repolode
PostgREST

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. 1

    阅读适用于你所用平台的安装文档(或使用 Docker)

  2. 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 数据每日更新。

相关项目