PRODSouveräne europäische BaaS-PlattformÖffnen Sie das Dashboard →

Ingenieurwesen · 9 Min. Lesezeit

PostgREST-Kompatibilität: Was es abdeckt und Alternativen

Affane Daylami · Fondateur · 3. August 2026

Zurück zum Blog

PostgREST wandelt ein PostgreSQL-Schema in eine REST-API um, ohne dass ein Backend geschrieben werden muss. Es ist eine klare Antwort auf einen bestimmten Bedarf – kein vollständiges Backend. Die Verwirrung zwischen den beiden erklärt den Großteil der Enttäuschungen, die wir im Online-Feedback lesen.

Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.

Dieser Artikel beschreibt detailliert, was PostgREST tatsächlich abdeckt, was es Ihnen überlässt, und vergleicht ernsthafte Alternativen – bis hin zu dem, was Aurabase tatsächlich intern abdeckt, was in seinem Code verifiziert und nicht angenommen wird.

Das Wesentliche

  • PostgREST generiert eine REST-API aus einem Postgres-Schema: Filter, Beziehungseinbettung, RPC-Aufrufe, JWT-gesteuertes RLS, OpenAPI-Spezifikation – ohne eine Zeile Backend-Code.
  • Was es nativ nicht kann: JWTs ausgeben, Dateien speichern, in Echtzeit pushen oder einen Verbindungspooler mit integrierter Rollenumschaltung bereitstellen.
  • Bei Aurabase läuft ein Postgres-Engine-Projekt auf einer echten dedizierten PostgREST v12.2.8-Instanz – keine Neuimplementierung. Ein MongoDB-Engine-Projekt durchläuft eine für Aurabase spezifische REST-Ebene, die von denselben Konventionen, aber mit unterschiedlichen Einschränkungen inspiriert ist.
  • Die Alternativen reichen von selbst gehostetem PostgREST (alles, was darum herum zusammengestellt werden muss) bis hin zu einem kompletten Backend (Supabase, Aurabase), über GraphQL-APIs wie Hasura oder PostGraphile.
#
Definition

Was genau ist PostgREST?

PostgREST ist ein autonomer Webserver, der eine vorhandene PostgreSQL-Datenbank direkt aus ihrem Schema in eine REST-API umwandelt. Es muss keine Anwendungsschicht geschrieben werden: Tabellen, Ansichten und Funktionen werden zu Routen, und SQL-Berechtigungen – Rollen, RLS-Richtlinien – werden zur Autorisierungsschicht.

Konkret deckt PostgREST fünf Funktionen ab, die in fast allen Auswertungen auftauchen:

  • Horizontale Filterung – etwa dreißig Operatoren (eq, gt, like, ilike, in, is, cs, ov, fts...) direkt in der Abfragezeichenfolge.
  • Vertikale Filterung und Einbettung – ?select= projiziert Spalten und bettet Beziehungen über Fremdschlüssel ein, zum Beispiel customer:customers(email).
  • RPC – ein POST /rpc/{fonction} ruft direkt eine SQL-Funktion auf, die zu einem Endpunkt wird.
  • RLS gesteuert durch JWT – PostgREST wechselt die aktive Postgres-Rolle entsprechend dem empfangenen Token (SET LOCAL ROLE), sodass Ihre Richtlinien unverändert gelten, ohne doppelte Autorisierungslogik auf der Anwendungsseite.
  • Selbstgeneriertes OpenAPI – die Spezifikation wird aus dem offengelegten Schema abgeleitet, ohne dass eine Datei manuell verwaltet werden muss.
Typische PostgREST-Abfragebash
curl "https://<gateway>/v1/db/<project_id>/orders \
  ?select=id,total,customer:customers(email) \
  &status=eq.paid \
  &order=created_at.desc" \
  -H "apikey: <votre-cle-api>"

Eine einzige HTTP-Anfrage filtert bezahlte Bestellungen, bettet die E-Mail des Kunden über einen Fremdschlüssel ein und sortiert nach Datum – ohne dass eine einzige Route von Hand geschrieben werden muss.

Der RPC folgt derselben Logik: Eine bereits in Ihrer Datenbank geschriebene SQL-Funktion wird zu einem POST-Endpunkt, dessen Argumente in JSON übergeben werden.

RPC-Aufrufbash
curl -X POST "https://<gateway>/v1/db/<project_id>/rpc/monthly_revenue" \
  -H "apikey: <votre-cle-api>" \
  -H "Content-Type: application/json" \
  -d '{"year": 2026, "month": 8}'

Dieses Prinzip – das Postgres-Schema ist die einzige Wahrheitsquelle der API – macht PostgREST vorhersehbar: Jede Verhaltensänderung durchläuft eine SQL-Migration und niemals eine separate Anwendungsschicht, die vom tatsächlichen Schema abgeleitet werden könnte. Das Projekt ist Open Source, entwickelt auf GitHub, unabhängig von einem bestimmten BaaS-Anbieter.

#
Grenzen

Was PostgREST nicht tut

PostgREST löst die CRUD-Schicht auf. Der Rest eines Anwendungs-Backends wird dadurch nicht aufgelöst. Bei Teams, die es alleine anwenden, treten systematisch vier Mängel auf.

  • Authentifizierung – keine JWT-Ausgabe oder integrierte Benutzerverwaltung. Sie müssen es in SQL erstellen oder an einen externen Dienst delegieren.
  • Dateispeicherung – keine. Ein S3-Bucket oder ein gleichwertiges Gerät muss weiterhin separat angeschlossen werden.
  • Echtzeit – PostgREST antwortet auf einmalige HTTP-Anfragen, es pusht keine Ereignisse.
  • Verbindungspooler – PostgREST selbst stellt eine Verbindung zu Postgres her, integriert jedoch keine erweiterten Pooler. Im großen Maßstab wird die Verwaltung zu einer eigenständigen Betriebsentscheidung: Ein Pooler im klassischen Transaktionsmodus steht im Konflikt mit dem PostgREST-Schema-Neulademechanismus (siehe unten, wie Aurabase diesen Kompromiss löst).
Infos

Keiner dieser Mängel ist ein Designfehler: PostgREST erledigt freiwillig eine bestimmte Aufgabe (Schema → REST-API). Es ist dieser enge Umkreis, der sein Verhalten vorhersehbar macht.

Eine praktische Konsequenz muss klar zum Ausdruck gebracht werden: Ohne Authentifizierung werden Ihre RLS-Richtlinien zur einzigen Sicherheitsgrenze zwischen einem anonymen Kunden und Ihren Daten. Eine schlecht geschriebene Richtlinie für die Rolle anon wird nicht durch eine zusätzliche Anwendungsschicht überholt – es gibt keine.

#
Code eingecheckt

PostgREST bei Aurabase: Was wirklich abgedeckt wird

Bei einem Aurabase-Postgres-Engine-Projekt – der Standard-Engine – leitet das Gateway jede CRUD-Anfrage direkt an eine PostgREST v12.2.8-Instanz weiter, die diesem Projekt gewidmet ist, zwei Replikate, die sich gemeinsam mit dem Postgres-Cluster des Mandanten befinden. Dabei handelt es sich nicht um eine ungefähre Kompatibilität: Es handelt sich um die PostgREST-Upstream-Binärdatei selbst, mit denselben Operatoren, derselben Einbettung, demselben RPC und demselben RLS, das von JWT gesteuert wird.

Bei einem MongoDB-Engine-Projekt sieht die Sache anders aus. MongoDB hat kein Äquivalent zu PostgREST: Diese Anfragen werden an einen internen Aurabase-Dienst weitergeleitet, der eine Teilmenge derselben Konventionen neu implementiert – identische Operatornamen, ?select=-Syntax mit Einbettung, Prefer- und Content-Range-Header – jedoch auf einer Dokument-Engine, nicht auf einer relationalen. Diese Ebene hat ihre eigenen Einschränkungen: Eine in der von einer Mutation zurückgegebenen Darstellung angeforderte Einbettung wird explizit abgelehnt und nicht stillschweigend ignoriert, und es gibt keine RPC-Route, die SQL-Funktionen entspricht.

Bei der Auswahl zählt die Unterscheidung

Die vollständige PostgREST-Kompatibilität – einschließlich RPC und RLS – ist eine Tatsache der Postgres-Engine und keine Engine-übergreifende Garantie. Wenn Ihr Projekt von in RPC bereitgestellten SQL-Funktionen abhängt, ist die Postgres-Engine derzeit die einzige Option.

Ein technisches Detail steht im Gegensatz zur Intuition: Jede dedizierte PostgREST-Instanz bleibt direkt mit dem primären Postgres verbunden, ohne den für diesen Mandanten bereitgestellten PgBouncer-Pooler zu durchlaufen. Vermuteter Grund: Der Transaktions-Pooling-Modus würde das Neuladen des PostgREST-Schemas unterbrechen, das auf LISTEN/NOTIFY basiert – einer dauerhaften Verbindung, die nicht mit einem Pool kompatibel ist, der die Verbindung für jede Transaktion wiederverwendet.

Ein weiteres nützliches Detail in der Produktion: Ein inaktives Projekt kann pausiert werden, um Ressourcen zu sparen. Die erste Anfrage an ein schlafendes Projekt löst dessen Aufwecken aus und empfängt ein 503 mit einer Wiederholungsverzögerung, der Zeit, die die dedizierte PostgREST-Instanz benötigt, um wieder hochzufahren – ein angenommener Kompromiss zwischen Kosten und kalter Latenz, kein versteckter Vorfall.

#
Vergleich

Welche Alternativen zu PostgREST gibt es?

PostgREST hat einen klaren Zweck: Das Postgres-Schema ist die Quelle der Wahrheit, und das Team möchte vermeiden, eine CRUD-Ebene von Hand zu schreiben. Abgesehen von diesem speziellen Fall gibt es mehrere Familien von Alternativen, je nachdem, was Sie hinzufügen möchten – von gar nichts (einfach selbst gehostet) bis hin zu einem kompletten, gebrauchsfertigen Backend.

Die folgende Tabelle vergleicht, was jede Option nativ abdeckt und was sie explizit Ihnen überlässt – ohne Werturteil über die von jedem Projekt gewählte Architektur.

Selbstgehostetes PostgRESTSelbstgenerierte REST-API (Filter, Einbettung, RPC, RLS).Authentifizierung, Speicherung, Echtzeit, Admin-Benutzeroberfläche – alles zum Zusammenstellen.
SupabaseIntegrierte PostgREST + Authentifizierung (GoTrue), Speicher, Echtzeit, Edge-Funktionen.Heterogener Stapel (Elixir/Go/TS/Node), Dienst für Dienst zusammengestellt.
Hasura / PostGraphileAutomatisch generierte GraphQL-API von Postgres.GraphQL-Ansatz, nicht REST – dedizierter Vergleich unten.
DirectusAdmin-Benutzeroberfläche + allgemeine REST/GraphQL-API, Multi-DBMS.Konzipiert für Datenmanagement/CMS, kein vollständiges Anwendungs-Backend.
Handgefertigtes Framework (Express, FastAPI, Rails…)Volle Kontrolle auf jeder Straße.CRUD, Validierung, Authentifizierung, Pooling – alles handschriftlich.
AurabaseEchtes PostgREST dediziert pro Postgres-Projekt + Authentifizierung, Speicher, Echtzeit, Edge-Funktionen und KI bereits integriert.Auf der MongoDB-Engine wird die REST-Ebene von Aurabase neu erstellt – nicht von PostgREST selbst.

Ein Punkt, der bei der Wahl von „selbst gehostet“ oft unterschätzt wird: PostgREST selbst lässt sich weiterhin leicht ausführen, aber der Produktionsbetrieb (Versionsaktualisierung, Hochverfügbarkeit, Verbindung mit einem Pooler, Überwachung) liegt vollständig in Ihrer Verantwortung – es ist diese Betriebsarbeit, nicht die Software, die verwaltete Plattformen absorbieren.

Für einen detaillierten Vergleich zwischen GraphQL-Ansätzen – pg_graphql, Hasura und PostGraphile – siehe , unseren Artikel über die GraphQL-API auf Postgres.

#
Entscheidung

So wählen Sie aus

Vier Situationen kommen am häufigsten vor. Die richtige Wahl hängt vor allem davon ab, was Sie bereit sind, selbst zusammenzubauen und zu warten.

  • Sie möchten lediglich eine REST-API über ein vorhandenes Postgres-Schema, sonst nichts. Selbstgehostetes PostgREST reicht aus: Es macht genau das, was es tut, und es muss nichts anderes installiert werden.
  • Sie benötigen zusätzliche Authentifizierung, Speicher und Echtzeit und sind bereit, mehrere Dienste zusammenzustellen. Supabase oder PostgREST zusammen mit Ihrem eigenen Anwendungsstapel erfüllt diesen Bedarf.
  • Sie bevorzugen GraphQL gegenüber REST. Hasura oder PostGraphile decken diesen Bereich ab – eine andere architektonische Wahl, kein direkter Ersatz für PostgREST.
  • Sie möchten ein vollständiges Postgres-Backend, ohne mehrere separate Dienste zusammenzufügen. Dies ist der Aspekt, den unsere einheitliche Rust-Architektur dokumentiert: echtes PostgREST für die CRUD-Schicht, nativ umgeben von Authentifizierungs-, Speicher-, Echtzeit- und Edge-Funktionen.
#
Häufig gestellte Fragen

FAQs

Was ist PostgREST?+
PostgREST ist ein Open-Source-Webserver, der eine vorhandene PostgreSQL-Datenbank direkt aus ihrem Schema in eine REST-API umwandelt: Tabellen, Ansichten und Funktionen werden zu Routen, ohne dass ein Backend geschrieben werden muss.
Kann PostgREST ein komplettes Backend ersetzen?+
Nein. PostgREST deckt die CRUD-Schicht (Filter, Einbettung, RPC, RLS) ab, jedoch nicht JWT-Emission, Dateispeicherung oder Echtzeit. Für ein vollständiges Backend müssen Sie diese Bausteine ​​selbst zusammenbauen oder eine Plattform übernehmen, die sie bereits integriert.
Ist Aurabase 100 % PostgREST-kompatibel?+
Bei einem Postgres-Engine-Projekt ja: Aurabase leitet an eine tatsächliche Upstream-PostgREST-Instanz weiter, keine Neuimplementierung. Bei einem MongoDB-Engine-Projekt nein: Die REST-Ebene ist eine Teilmenge der PostgREST-Konventionen, die von Aurabase auf einer Dokument-Engine rekonstruiert wurden, mit unterschiedlichen Einschränkungen (kein RPC, Einbettung bei Mutationen abgelehnt).
Wie bekomme ich eine automatische REST-API auf Postgres, ohne ein Backend zu schreiben?+
Zwei Hauptoptionen: Installieren Sie PostgREST selbst vor Ihrer Datenbank (es liest das Diagramm und stellt die Routen bereit) oder verwenden Sie eine Plattform, die es bereits integriert – zum Beispiel Supabase oder Aurabase – um zu vermeiden, dass die Instanz zusätzlich zu ihrer Verwendung ausgenutzt wird.

BEREIT ZUM EINSATZ?

Ihr Backend in fünf Minuten.

Keine Kreditkarte erforderlich · 500 MB kostenlos · 50.000 MAU