Veröffentlichung von PostgREST 9.0.0, Add-ons zur Umwandlung der Datenbank in eine RESTful-API

PostgREST 9.0.0 wurde veröffentlicht, ein separat betriebener Webserver mit der Implementierung eines leichtgewichtigen Add-ons zum PostgreSQL-DBMS, das Objekte aus einer vorhandenen Datenbank in eine RESTful-API übersetzt. Anstatt relationale Daten in Objekten (ORMs) abzubilden, erstellt PostgREST Ansichten direkt in der Datenbank. Die Datenbankseite übernimmt auch die Serialisierung von JSON-Antworten, die Datenvalidierung und die Autorisierung. Die Systemleistung reicht aus, um auf einem typischen Server bis zu 2000 Anfragen pro Sekunde zu verarbeiten. Der Projektcode ist in Haskell geschrieben und wird unter der MIT-Lizenz vertrieben.

Wenn Sie beispielsweise nur den Datenbankprivilegmechanismus verwenden, können Sie Zugriff auf Daten (Tabellen, Ansichtstypen und gespeicherte Prozeduren) über HTTP gewähren. In diesem Fall ist es nicht erforderlich, eine solche Übersetzung zu kodieren und normalerweise reicht ein GRANT-Befehl aus, um die Tabelle über die REST-API verfügbar zu machen. Es ist möglich, den Zugriff per Token (JWT) zu konfigurieren und „Multitenancy“ durch den Einsatz dynamischer Sicherheit auf Zeilenebene (Row Level Security) zu organisieren.

Architektonisch strebt PostgREST eine datenorientierte Architektur (Data-Oriented Architecture) an, bei der Microservices nicht selbst Zustände speichern, sondern dafür einen einzigen Zugriff auf Daten (Data Access Layer) nutzen.

Veröffentlichung von PostgREST 9.0.0, Add-ons zur Umwandlung der Datenbank in eine RESTful-API

Zu den Änderungen in der neuen Version:

  • Dem Speicherschema-Cache wurden partitionierte Tabellen hinzugefügt, die es solchen Tabellen ermöglichten, UPSERT- und INSERT-Vorgänge in die Standortantwort einzubetten, OPTIONS-Abfragen auszuführen und OpenAPI-Unterstützung zu implementieren.
  • Über RPC POST ist es erlaubt, Funktionen mit einem unbenannten Parameter aufzurufen.
  • Es ist erlaubt, Funktionen mit einem JSON-Parameter ohne den Header „Prefer: params=single-object“ aufzurufen.
  • Es ist erlaubt, Daten vom Typ bytea in Funktionen zu laden, indem Anfragen mit „Content-Type: application/octet-stream“ verwendet werden.
  • Erlaubt, Text mithilfe von Abfragen mit „Content-Type: text/plain“ in Funktionen zu laden.
  • Unterstützung für Escapezeichen in doppelten Klammern hinzugefügt, zum Beispiel „?col=in.(“Double\“Quote“), ?col=in.(“Back\\slash“)“.
  • Es wurde die Möglichkeit bereitgestellt, Ressourcen der ersten Ebene basierend auf integrierten Filtern („/projects?select=*,clients!inner(*)&clients.id=eq.12“ zu filtern.
  • Der „is“-Operator lässt den Wert „unknown“ zu.
  • Die Kompatibilität mit PostgreSQL 14 wurde erreicht und die Unterstützung für PostgreSQL 9.5 wurde eingestellt.

Source: opennet.ru

Kommentar hinzufügen