PostgREST, eine REST-API für jede in Haskell geschriebene PostgreSQL-Datenbank

PostgREST-Logo

postgREST ist ein unabhängiger Webserver, der Transformieren Sie jede PostgreSQL-Datenbank direkt in eine RESTful-API. Geschrieben in Haskell, bietet einen viel saubereren, mehr standardkonformen AP. Während die strukturellen Einschränkungen und Berechtigungen der Datenbank die Endpunkte und Operationen der API bestimmen.

Die PostgREST-Dokumentation beschreibt es als "Alternative zur manuellen CRUD-Programmierung". PostgREST ist eine Open Source Middleware und die von PostgREST bereitgestellten APIs entsprechen der OpenAPI-Spezifikation (früher als Swagger-Spezifikation bekannt). Gemäß der Dokumentation werden die Abhängigkeiten zwischen den Tabellen in Ihrer Datenbank nativ verwaltet, sodass Sie über eine einfache REST-Anforderung Daten aus einem Join zwischen zwei Tabellen abrufen können.

PostgREST wäre mit einer Reaktionszeit von weniger als einer Sekunde sehr schnell für bis zu 2000 Anfragen pro Sekunde auf der kostenlosen Stufe Heroku.

"Wenn Sie an Server gewöhnt sind, die in interpretierten Sprachen geschrieben sind, lassen Sie sich von der Leistung von PostgREST angenehm überraschen", sagt das Team.

Drei Faktoren tragen laut Team zu dieser Geschwindigkeit bei.

  1. Zuerst Der Server ist in Haskell geschrieben Verwenden des HTTP-Warp-Servers (eine kompilierte Sprache).
  2. Dann delegieren Sie so viele Berechnungen wie möglich an die Datenbank, einschließlich der Serialisierung von JSON-Antworten direkt in SQL, der Validierung von Daten usw.
  3. Schließlich Verwenden Sie die Hasql-Bibliothek, um einen Pool von Datenbankverbindungen zu verwalten, das PostgreSQL-Binärprotokoll, und bleibt zustandslos, um eine horizontale Skalierung zu ermöglichen.

postgREST behandelt die Authentifizierung (über JSON-Web-Token) und delegiert die Autorisierung an die in der Datenbank definierten Rolleninformationen. Dies stellt sicher, dass es nur eine deklarative Quelle der Wahrheit für die Sicherheit gibt.

Beim Umgang mit der Datenbank, Der Server übernimmt die Identität des aktuell authentifizierten Benutzers und während der Verbindung kann es nichts tun, was der Benutzer selbst nicht tun kann. Andere Formen der Authentifizierung können im JWT-Grundelement erstellt werden.

Andererseits wenn es um Datenintegrität geht, PostgREST anstatt sich auf einen Object Relational Mapper zu verlassen (ORM) und eine benutzerdefinierte imperative Codierung, Dieses System legt deklarative Einschränkungen direkt für Ihre Datenbank fest.

Daher kann keine Anwendung Ihre Daten (einschließlich Ihres API-Servers) beschädigen. PostgREST macht die HTTP-Schnittstelle mit verschiedenen Sicherungen verfügbar, um Probleme zu vermeiden, einschließlich der Anwendung von PUT-Anforderungen. Mit anderen Worten, es ist kein ORM beteiligt.

Die Erstellung neuer Ansichten erfolgt in SQL mit bekannten Auswirkungen auf die Leistung. Das Beste an PostgREST ist, dass ein Datenbankadministrator eine API ohne benutzerdefinierte Programmierung von Grund auf neu erstellen kann.

Für einige PostgREST ist auch eine interessante Alternative zu einer NoSQL- oder GraphQL-Datenbank nativ in API verfügbar gemacht, wenn Sie ein relationales Modell pflegen müssen. Sie finden es bedauerlich, dass diese Middleware nicht standardmäßig in den Paket-Repositorys großer Linux-Distributionen verfügbar ist.

Wie installiere ich PostgREST unter Linux?

Version 6.0.2 wurde im letzten August mit neuen Ergänzungen und einigen Änderungen veröffentlicht. Diese Version ist bei Github erhältlich.

Der Link ist dies.

Ähnlich, für diejenigen, die PostgREST installieren möchten, Sie sollten wissen, dass die aktuelle Version jetzt mit Hilfe eines Terminators erhältlich ist. Nur darin werden wir schreiben:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz

Jetzt müssen sie das Paket nur noch mit dem folgenden Befehl entpacken:

tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz

Während im speziellen Fall von denen, die eine 64-Bit-Version von Ubuntu verwenden:

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntu.tar.xz
tar Jxf postgrest-v6.0.2-ubuntu.tar.xz

Oder für diejenigen, die eine 32-Bit-Version von Ubuntu verwenden

wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-ubuntui386.tar.xz
tar Jxf postgrest-v6.0.2-ubuntui386.tar.xz

Und sie können laufen mit:

./postgrest --help

Auf die gleiche Weise wird ein Docker-Bild erstellt, das Sie durch Eingabe von:

Docker ziehen Postgrest / Postgrest

Weitere Informationen zur Konfiguration finden Sie in der Dokumentation auf der Website. Der Link ist dies.


Als bevorzugte Quelle in Google hinzufügen