后REST文档#

_images/postgrest.png
https://img.shields.io/github/stars/postgrest/postgrest.svg?style=social https://img.shields.io/github/v/release/PostgREST/postgrest.svg https://img.shields.io/docker/pulls/postgrest/postgrest.svg https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg https://img.shields.io/badge/Donate-Patreon-orange.svg?colorB=F96854 https://img.shields.io/badge/Donate-PayPal-green.svg

PostgREST是一个独立的Web服务器,可以将您的PostgreSQL数据库直接转换为REST风格的API。数据库中的结构约束和权限决定了API端点和操作。

赞助商#

_images/cybertec-dark.svg
_images/cybertec.svg
_images/gnuhost.png
_images/neon-dark.jpg
_images/neon.jpg

_images/code-build-dark.png
_images/code-build.png
_images/supabase-dark.png
_images/supabase.png
_images/tembo.png

数据库是唯一的真理来源#

使用PostgREST是手动CRUD编程的替代方案。自定义API服务器出现问题。编写业务逻辑经常重复、忽略或妨碍数据库结构。对象关系映射是一个漏洞百出的抽象,会导致运行缓慢的命令性代码。PostgREST哲学建立了一个单一的陈述性真理来源:数据本身。

声明性编程#

让PostgreSQL为您连接数据并让它的查询规划器计算出细节要比自己遍历行容易得多。为数据库对象分配权限比在控制器中添加保护更容易。(对于数据依赖项中的级联权限尤其如此。)设置约束比使用健全性检查丢弃代码更容易。

防泄漏抽象#

不涉及ORM。创建新视图是在SQL中进行的,具有已知的性能影响。数据库管理员现在可以从头开始创建API,而不需要进行定制编程。

有一件事很好#

PostgREST有一个重点关注的范围。它可以很好地与Nginx等其他工具配合使用。这迫使您清楚地将以数据为中心的CRUD操作与其他关注点分开。使用一系列锋利的工具,而不是建造一个大泥球。

获得支持#

该项目拥有一个友好且不断增长的社区。要进行讨论,请使用Github discussions page 或者加入我们的 chat room 。您还可以报告或搜索Github上的错误/功能 issues 佩奇。

发行说明#

发行说明发布于 PostgREST's GitHub release page

教程#

您是新来PostgREST吗?这就是开始的地方!

还可以看看 安装社区教程

参考文献#

有关PostgREST功能的技术参考。

解释#

PostgREST中的关键概念。

操作指南#

帮助您解决特定用例的食谱。

整合#

生态系统#

PostgREST拥有一个不断增长的示例、库和实验生态系统。这里有一些精选。

在生产中#

以下是一些在生产中使用PostgREST的公司。

奖状#

“开发得太快了,感觉就像作弊!”

—弗朗索瓦-纪尧姆·里布鲁

我只能说,与我们基于Node.js/Waterline ORM的API相比,CPU/内存使用率非常不可思议。当我们当前的API在6个实例(Dynos)上不断达到1 GB时,甚至很难将其推到60/70 MB以上。

—路易斯·布劳尔

“我真的很享受突然间我用SQLDDL(和V8脚本函数)编写微服务的事实。我避开了太多的样板。接下来我知道的是,我们在6个月内完全重写了一个Spring+MySQL遗留应用程序。真的快了10倍,代码超级简洁。旧的花了3年时间和4个人的团队开发出来。”

—西蒙·斯卡杜齐奥

我喜欢PostgREST做了一件事,而且做得很好。虽然PostgREST负责弥合我们的HTTP服务器和PostgreSQL数据库之间的差距,但我们可以专注于用一种语言开发我们的API:SQL。这将数据库放在我们架构的中心,并推动我们提高SQL编程和数据库设计的技能。

—EGull SAS数据工程师Eric BréChemier

PostgREST性能高、稳定且透明。它使我们能够非常快速地引导项目,并专注于我们的数据和应用程序,而不是构建ORM层。在我们的K8S集群中,我们为每个我们想要公开的模式运行几个Pod,并根据需求进行向上/向下扩展。这是最令人高兴的事情。

—Anupam Garg,Datrium,Inc.

贡献#

请参阅 Contributing guidelines 在主PostgREST存储库中。