PostgREST 9.0.0 vĂ€ljaanne, iseseisva veebiserveri lahendus PostgreSQL andmebaasihalduse jaoks, mis muundab olemasolevad andmebaasi objektid RESTful API-ks. Erinevalt rĂ€latsiooniliste andmete mehhanismidest (ORM) luuakse PostgREST vaated otse andmebaasis. Andmebaasi tasandil toimub ka JSON-vastuste serialiseerimine, andmete kontrollimine ja autoriseerimine. Ahned sĂŒsteemid suudavad kĂ€itada kuni 2000 pĂ€ringut sekundis tĂŒĂŒpilises serveris. Projekti kood on kirjutatud Haskellis ja levitakse MIT litsentsi alusel.
NĂ€iteks saab andmebaasi privileegide mehhanismi kasutades anda andmetele (tabelitele, vaadetele ja salvestatud protseduuridele) HTTP-protokolli kaudu ligipÀÀsu. Pole vaja sellist muundamist kodeerida ja tavaliselt piisab ĂŒhest GRANT kĂ€sust, et tabel oleks REST API kaudu kergesti ligipÀÀsetav. On olemas vĂ”imalus seadistada juurdepÀÀs tokeniga (JWT) ja korraldada âmulti-tenantâ sĂŒsteem dĂŒnaamilise rea tasandi turbe (Row Level Security) abil.
Arhitektuurselt ergutab PostgREST andmepĂ”hist arhitektuuri (Data-Oriented Architecture), kus mikroteenused ei salvesta mitte mingit olekut, vaid kasutavad andmete ĂŒhtset ligipÀÀsu (Data Access Layer).

Uues versioonis on jÀrgmised muudatused:
- Salvestusmehanismide vahemÀllu on lisatud osadestatud (partytsioneeritud) tabelid, vÔimaldades selliste tabelite korral sisestada UPSERT ja INSERT operatsioone kirjete asukoha vastustes, teostada OPTIONS pÀringute tÀitmist ja rakendada OpenAPI tuge.
- RPC POST kaudu on lubatud funktsioone kutsuda ĂŒhe nimetamata parameetriga.
- Lubatud on funktsioonide kutsumine ĂŒhe JSON-parameetriga ilma pĂ€iseta âPrefer: params=single-objectâ.
- Lubatud on andmete laadimine bytea tĂŒĂŒpi funktsioonidesse, kasutades pĂ€ringute âContent-Type: application/octet-streamâ.
- Lubatud on andmete laadimine tekstina funktsioonidesse, kasutades pĂ€ringute âContent-Type: text/plainâ.
- Lisatud on tugitĂ€histe eemaldamine kahekordsete sulgudes, nĂ€iteks â?col=in.(âDouble\âQuoteâ), ?col=in.(âBack\\slashâ)â.
- Antud on vĂ”imalus filtrida esmaklassilisi ressursse sisseehitatud filtrite alusel (â/projects?select=*,clients!inner(*)&clients.id=eq.12â.
- Operatsioonis âisâ on lubatud kasutada vÀÀrtust âunknownâ.
- Tagatud ĂŒhilduvus PostgreSQL 14-ga ja lĂ”petatud PostgreSQL 9.5 toe pakkumine.
Allikas: opennet.ru
