PostgREST, e REST API fir all PostgreSQL Datebank geschriwwen an Haskell

PostgREST-Logo

PostgREST ass en onofhängege Webserver deen transforméiert all PostgreSQL Datebank direkt an eng RESTful API. Geschriwwen zu Haskell, bitt e vill méi propper, méi Standards konform AP. Wärend déi strukturell Contrainten an Permissiounen vun der Datebank d'Endpunkte an d'Operatioune vun der API bestëmmen.

D'PostgREST Dokumentatioun beschreift et als eng "Alternativ zu der manueller CRUD Programméierung." PostgREST ass eng Open Source Middleware an d'APIen, déi vu PostgREST ausgesat sinn, entspriechen der OpenAPI Spezifikatioun (fréier als Swagger Spezifikatioun bekannt). Geméiss senger Dokumentatioun geréiert et natierlech d'Ofhängegkeeten tëscht Ären Datebank Dëscher, et erlaabt Iech duerch eng einfach REST Ufro fir Daten aus enger Verbindung tëscht zwee Dëscher ze kréien.

PostgREST wier ganz séier mat enger Äntwertzäit vu manner wéi enger Sekonn fir bis zu 2000 Ufroe pro Sekonn op der Heroku gratis Tier.

"Wann Dir gewinnt sidd mat Serveren, déi an interpretéierten Sproochen geschriwwe sinn, bereet Iech vir, agreabel ze iwwerraschen iwwer d'Performance vu PostgREST", seet d'Team.

Dräi Faktore droen zur Vitesse no dem Team bäi.

  1. Éischtens, de Server gëtt zu Haskell geschriwwen mat HTTP Warp Server (eng kompiléiert Sprooch).
  2. Dann, delegéiert sou vill Berechnunge wéi méiglech an d'Datebank, inklusive Serialiséierung vun JSON Äntwerte direkt an SQL, Validatioun vun Donnéeën, asw.
  3. Endlech benotzt d'Hasql Bibliothéik fir e Pool vu Datebankverbindungen z'erhalen, de PostgreSQL binäre Protokoll, a bleift staatlos fir horizontal Skaléieren z'erméiglechen.

PostgREST behandelt Authentifikatioun (iwwer JSON Web Tokens) an delegéiert d'Autorisatioun un d'Rollinformatioun an der Datebank definéiert. Dëst garantéiert datt et nëmmen eng deklarativ Quell vun der Wourecht fir Sécherheet ass.

Wann Dir mat der Datebank ëmgeet, de Server iwwerhëlt d'Identitéit vum aktuell authentifizéierte Benotzer a während der Verbindung kann et näischt maachen wat de Benotzer selwer net kann. Aner Forme vun Authentifikatioun kënnen am JWT primitive gebaut ginn.

Op der anerer Säit wann et drëm geet Daten Integritéit, PostgREST anstatt op en Object Relational Mapper ze vertrauen (ORM) an eng personaliséiert Imperativ Kodéierung, dëse System setzt deklarativ Contrainten direkt op Är Datebank op.

Dofir kann keng Uwendung Är Donnéeën (och Ären API Server) schueden. PostgREST exposéiert d'HTTP-Interface mat verschiddene Backups fir Probleemer ze vermeiden, dorënner d'Uwendung vu PUT Ufroen. An anere Wierder, et ass keen ORM involvéiert.

D'Schafe vun neie Usiichte geschitt a SQL mat bekannte Performance Implikatiounen. Déi bescht Saach iwwer PostgREST ass datt en Datebankadministrator en API vu Null erstallt ouni personaliséiert Programméierung.

Fir e puer, PostgREST ass och eng interessant Alternativ zu enger NoSQL oder GraphQL Datebank natirlech an der API ausgesat wann Dir e Bezéiungsmodell erhalen muss. Si fannen et bedauerlech datt dës Middleware net als Standard an de Package Repositories vu grousse Linux Verdeelunge verfügbar ass.

Wéi installéiere PostgREST op Linux?

Versioun 6.0.2 gouf am leschten August mat neien Ergänzunge verëffentlecht an e puer Ännerungen. Dës Versioun ka vu github kritt ginn.

De Link ass dëst.

Ähnlech, fir Leit, déi interesséiert sinn, PostgREST installéieren ze kënnen, si solle wëssen datt déi aktuell Versioun elo mat Hëllef vun engem Terminator kritt gëtt. Nëmmen an dësem gi mir tippen:

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

Elo musse se just de Package mam folgenden Kommando auspacken:

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

Wärend am speziellen Fall vun deenen, déi eng 64-Bit Versioun vun Ubuntu benotzen:

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 fir déi, déi eng 32-Bit Versioun vun Ubuntu benotzen

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

A si kënne lafe mat:

./postgrest --help

Op déiselwecht Manéier gëtt en Docker-Bild virbereet, et kann een duerch Tippen kréien:

docker zéien postgrest / postgrest

Schlussendlech kënnt Dir méi Informatiounen iwwer d'Konfiguratioun dovun kréien, vun der Dokumentatioun op senger Websäit. De Link ass dëst.


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

Gitt d'éischt fir ze kommentéieren

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.