PostgREST, en REST API til enhver PostgreSQL-database skrevet i Haskell

PostgREST-logo

PostGREST er en uafhængig webserver, der omdanne enhver PostgreSQL-database direkte til en RESTful API. Skrevet i Haskell, tilbyder en meget renere, mere standard kompatibel AP. Mens databasens strukturelle begrænsninger og tilladelser bestemmer slutpunkterne og operationerne af API'et.

PostgREST-dokumentationen beskriver det som et "alternativ til manuel CRUD-programmering." PostgREST er en open source middleware og API'erne, der er eksponeret af PostgREST, overholder OpenAPI-specifikationen (tidligere kendt som Swagger-specifikationen). Ifølge dokumentationen styrer den indbyggede afhængigheder mellem tabellerne i din database, så du gennem en simpel REST-anmodning kan hente data fra en sammenføjning mellem to tabeller.

PostgREST ville være meget hurtig med en responstid på mindre end et sekund i op til 2000 anmodninger i sekundet på Heroku gratis niveau.

"Hvis du er vant til servere skrevet på fortolkede sprog, skal du forberede dig på at blive glædeligt overrasket over PostgRESTs ydeevne," siger holdet.

Ifølge teamet bidrager tre faktorer til denne hastighed.

  1. First, serveren er skrevet i Haskell ved hjælp af HTTP Warp-server (et kompileret sprog).
  2. derefter, delegere så mange beregninger som muligt til databasen, herunder serialisering af JSON-svar direkte i SQL, validering af data osv.
  3. Endelig brug Hasql-biblioteket til at opretholde en pulje af databaseforbindelser, den binære protokol PostgreSQL og forbliver statsløs for at tillade vandret skalering.

PostGREST håndterer godkendelse (via JSON Web Tokens) og delegerer autorisation til den rolleinformation, der er defineret i databasen. Dette sikrer, at der kun er én erklærende kilde til sandhed af sikkerhed.

Når du beskæftiger dig med databasen, serveren antager identiteten af ​​den aktuelt godkendte bruger og under forbindelsen kan den ikke gøre noget, som brugeren selv ikke kan gøre. Andre former for godkendelse kan konstrueres i JWT-primitivet.

På den anden side når det kommer til dataintegritet, PostgREST i stedet for at stole på en Object Relational Mapper (ORM) og en brugerdefineret imperativ kodning, dette system pålægger deklarative begrænsninger direkte i din database.

Derfor kan ingen applikationer skade dine data (inklusive din API-server). PostgREST udsætter HTTP-grænsefladen med forskellige sikkerhedskopier for at undgå problemer, herunder anvendelse af PUT-anmodninger. Med andre ord er der ingen ORM involveret.

Oprettelsen af ​​nye visninger sker i SQL med kendte ydeevneimplikationer. Det bedste ved PostgREST er, at en databaseadministrator kan oprette en API fra bunden uden brugerdefineret programmering.

For nogle, PostgREST er også et interessant alternativ til en NoSQL- eller GraphQL-database eksponeret indbygget i API, hvis du har brug for at vedligeholde en relationel model. De finder det uheldigt, at denne middleware ikke er tilgængelig som standard i pakkeopbevaringsstederne for store Linux-distributioner.

Hvordan installeres PostgREST på Linux?

Version 6.0.2 blev udgivet i august sidste år med nye tilføjelser og nogle ændringer. Denne version kan fås fra github.

Linket er dette.

Tilsvarende, for dem der er interesserede i at kunne installere PostgREST, de skulle vide, at den aktuelle version kan fås i øjeblikket ved hjælp af en ende. Kun i det skal vi skrive:

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

Nu skal de bare pakke pakken ud med følgende kommando:

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

Mens det er i særlige tilfælde for dem, der bruger en 64-bit version af Ubuntu:

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

Eller for dem, der bruger en 32-bit version af Ubuntu

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

Og de kan løbe med:

./postgrest --help

På samme måde forberedes et Docker-billede, det kan opnås ved at skrive:

docker pull postgrest / postgrest

Endelig kan du få flere oplysninger om konfigurationen af ​​det fra dokumentationen på dets websted. Linket er dette.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.