postgREST je neodvisen spletni strežnik, ki pretvorite katero koli bazo podatkov PostgreSQL neposredno v RESTful API. Napisano v Haskellu, ponuja veliko čistejši AP, skladnejši s standardi. Medtem ko strukturne omejitve in dovoljenja baze podatkov določajo končne točke in delovanje API-ja.
Dokumentacija PostgREST ga opisuje kot "alternativo ročnemu programiranju CRUD". PostgREST je odprtokodna vmesna programska oprema in API-ji, ki jih izpostavlja PostgREST, ustrezajo specifikaciji OpenAPI (prej znani kot specifikacija Swagger). V skladu s svojo dokumentacijo nativno upravlja odvisnosti med tabelami baze podatkov, kar vam omogoča, da prek preproste zahteve REST pridobite podatke iz združitve med dvema tabelama.
PostgREST bi bil zelo hiter z odzivnim časom manj kot sekundo do 2000 zahtev na sekundo na brezplačnem nivoju Heroku.
"Če ste vajeni strežnikov, napisanih v tolmačenih jezikih, se pripravite, da boste prijetno presenečeni nad uspešnostjo PostgREST-a," pravi ekipa.
K tej hitrosti po mnenju ekipe prispevajo trije dejavniki.
- Primero, strežnik je napisan v Haskellu z uporabo strežnika HTTP Warp (prevedeni jezik).
- Potem v bazo podatkov prenese čim več izračunov, vključno s serializacijo odzivov JSON neposredno v SQL, preverjanje veljavnosti podatkov itd.
- Končno, uporabite knjižnico Hasql za vzdrževanje področja povezav z bazo podatkov, binarni protokol PostgreSQL, in ostaja brez državljanstva, da omogoča vodoravno skaliranje.
postgREST obravnava preverjanje pristnosti (prek spletnih žetonov JSON) in pooblastilo prenese na informacije o vlogi, opredeljene v zbirki podatkov. To zagotavlja, da obstaja samo en deklarativni vir resnice za varnost.
Ko se ukvarjate z bazo podatkov, strežnik prevzame identiteto trenutno preverjenega uporabnika in med povezavo ne more storiti ničesar, česar uporabnik sam ne more. Druge oblike preverjanja pristnosti je mogoče izdelati v primitivu JWT.
Po drugi strani ko gre za integriteto podatkov, PostgREST namesto da se zanašamo na objektni relacijski preslikavalec (ORM) in obvezno kodiranje po meri, ta sistem nalaga deklarativne omejitve neposredno vaši bazi podatkov.
Nobena aplikacija zato ne more škodovati vašim podatkom (vključno s strežnikom API). PostgREST izpostavi vmesnik HTTP z različnimi varnostnimi kopijami, da se izogne težavam, vključno z uporabo zahtev PUT. Z drugimi besedami, ORM ni vključen.
Ustvarjanje novih pogledov poteka v SQL z znanimi posledicami za delovanje. Najboljše pri PostgREST je, da lahko skrbnik baze podatkov ustvari API od začetka brez programiranja po meri.
Za nekatere, PostgREST je tudi zanimiva alternativa zbirki podatkov NoSQL ali GraphQL izpostavijo v API-ju, če morate vzdrževati relacijski model. Žal jim je, da ta vmesna programska oprema ni standardno na voljo v repozitorijih paketov velikih distribucij Linuxa.
Kako namestiti PostgREST v Linux?
Različica 6.0.2 je bila izdana avgusta lani z novimi dodatki in nekaterimi spremembami. To različico lahko dobite pri githubu.
podobno, za tiste, ki jih zanima namestitev PostgREST, vedeti bi morali, da je trenutno različico mogoče dobiti s pomočjo terminatorja. Samo vanj bomo vtipkali:
wget https://github.com/PostgREST/postgrest/releases/download/v6.0.2/postgrest-v6.0.2-linux-x64-static.tar.xz
Zdaj morajo samo odpreti paket z naslednjim ukazom:
tar Jxf postgrest-v6.0.2-linux-x64-static.tar.xz
V posebnem primeru tistih, ki uporabljajo 64-bitno različico Ubuntuja:
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
Ali za tiste, ki uporabljajo 32-bitno različico Ubuntuja
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
In lahko tečejo z:
./postgrest --help
Na enak način se pripravi Dockerjeva slika, ki jo lahko dobimo s tipkanjem:
docker pull postgrest / postgrest
Končno lahko dobite več informacij o njegovi konfiguraciji iz dokumentacije na njeni spletni strani. Povezava je to.