PostgREST, een REST API voor elke PostgreSQL-database geschreven in Haskell

postgREST-logo

postgREST is een onafhankelijke webserver die transformeer elke PostgreSQL-database rechtstreeks in een RESTful API. Geschreven in Haskell, biedt een veel schonere AP met meer standaarden. Terwijl structurele beperkingen en databasemachtigingen API-eindpunten en -bewerkingen bepalen.

De PostgREST-documentatie beschrijft het als een "alternatief voor handmatige CRUD-programmering." PostgREST is een open source middleware en de API's die door PostgREST worden weergegeven, voldoen aan de OpenAPI-specificatie (voorheen bekend als de Swagger-specificatie). Volgens de documentatie beheert het native de afhankelijkheden tussen uw databasetabellen, waardoor u via een eenvoudig REST-verzoek gegevens kunt ophalen uit een koppeling tussen twee tabellen.

PostgREST zou erg snel zijn met een responstijd van minder dan een seconde voor maximaal 2000 verzoeken per seconde op het gratis niveau van Heroku.

"Als je gewend bent aan servers die in geïnterpreteerde talen zijn geschreven, bereid je dan voor op een aangename verrassing door de prestaties van PostgREST", zegt het team.

Drie factoren dragen volgens het team bij aan deze snelheid.

  1. Eerste, de server is geschreven in Haskell met behulp van HTTP Warp-server (een gecompileerde taal).
  2. dan, delegeer zoveel mogelijk berekeningen aan de database, inclusief het rechtstreeks serialiseren van JSON-reacties in SQL, het valideren van gegevens, etc.
  3. Tenslotte gebruik de Hasql-bibliotheek om een ​​pool van databaseverbindingen te onderhouden, het PostgreSQL binaire protocol, en blijft staatloos om horizontaal schalen mogelijk te maken.

postgREST handelt authenticatie af (via JSON Web Tokens) en autorisatie delegeert aan de rolinformatie die in de database is gedefinieerd. Dit zorgt ervoor dat er slechts één declaratieve bron van waarheid is voor beveiliging.

Bij het omgaan met de database, de server neemt de identiteit aan van de momenteel geauthenticeerde gebruiker en tijdens de verbinding kan het niets doen dat de gebruiker zelf niet kan. In de JWT-primitief kunnen andere vormen van authenticatie worden geconstrueerd.

Anderzijds als het gaat om gegevensintegriteit, PostgREST in plaats van te vertrouwen op een Object Relational Mapper (ORM) en een aangepaste imperatieve codering, dit systeem legt direct declaratieve beperkingen op aan uw database.

Geen enkele app kan dus uw gegevens beschadigen (inclusief uw API-server). PostgREST stelt de HTTP-interface bloot met meerdere back-ups om problemen te voorkomen, waaronder het toepassen van PUT-verzoeken. Met andere woorden, er is geen ORM bij betrokken.

Het maken van nieuwe weergaven vindt plaats in SQL met bekende implicaties voor de prestaties. Het beste van PostgREST is dat een databasebeheerder een geheel nieuwe API kan maken zonder aangepaste programmering.

Voor sommigen PostgREST is ook een interessant alternatief voor een NoSQL- of GraphQL-database native zichtbaar in API als u een relationeel model moet onderhouden. Ze vinden het jammer dat deze middleware niet standaard aanwezig is in de pakketrepository's van grote Linux-distributies.

Hoe PostgREST op Linux te installeren?

Versie 6.0.2 is afgelopen augustus uitgebracht met nieuwe toevoegingen en enkele wijzigingen. Deze versie kan worden verkregen via github.

De link is dit.

Evenzo, voor diegenen die geïnteresseerd zijn in het kunnen installeren van PostgREST, ze zouden moeten weten dat de huidige versie nu kan worden verkregen met behulp van een terminator. Alleen daarin gaan we typen:

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

Nu hoeven ze het pakket alleen maar uit te pakken met het volgende commando:

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

In het speciale geval van degenen die een 64-bits versie van Ubuntu gebruiken:

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

Of voor degenen die een 32-bits versie van Ubuntu gebruiken

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

En ze kunnen rennen met:

./postgrest --help

Op dezelfde manier wordt een Docker-afbeelding voorbereid, deze kan worden verkregen door te typen:

docker pull postgrest / postgrest

Eindelijk kunt u meer informatie krijgen over de configuratie ervan, via de documentatie op de website. De link is dit.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.