A PostgREST 9.0.0 kiadása, az adatbázist RESTful API-vá alakító kiegészítők

Megjelent a PostgREST 9.0.0, egy külön működő webszerver, amely a PostgreSQL DBMS-hez egy könnyű bővítményt implementált, és az objektumokat egy meglévő adatbázisból RESTful API-ba fordítja le. A relációs adatok objektumokba (ORM-ek) való leképezése helyett a PostgREST közvetlenül az adatbázisban hoz létre nézeteket. Az adatbázis-oldal kezeli a JSON-válaszok sorozatosítását, az adatok érvényesítését és engedélyezését is. A rendszer teljesítménye elegendő akár 2000 kérés feldolgozásához másodpercenként egy tipikus szerveren. A projekt kódja Haskell nyelven íródott, és az MIT licenc alatt kerül terjesztésre.

Például csak az adatbázis-jogosultsági mechanizmus használatával hozzáférést biztosíthat az adatokhoz (táblázatokhoz, nézettípusokhoz és tárolt eljárásokhoz) HTTP-n keresztül. Ebben az esetben nincs szükség egy ilyen fordítás kódolására, és általában egy GRANT parancs elegendő ahhoz, hogy a tábla elérhetővé váljon a REST API-n keresztül. Lehetőség van a token (JWT) hozzáférés konfigurálására és a „többi bérlés” megszervezésére a dinamikus sorszintű biztonság (Row Level Security) használatával.

Építészetileg a PostgREST egy adatorientált architektúra (Data-Oriented Architecture) felé törekszik, ahol a mikroszolgáltatások nem maguk mentik el az állapotokat, hanem egyetlen hozzáférést használnak az adatokhoz (Data Access Layer).

A PostgREST 9.0.0 kiadása, az adatbázist RESTful API-vá alakító kiegészítők

Az új verzió változásai között szerepel:

  • Partícionált táblák kerültek a tárolási séma-gyorsítótárba, ami lehetővé tette, hogy az ilyen táblák UPSERT és INSERT műveleteket ágyazzanak be a hely válaszba, OPTIONS lekérdezéseket hajtsanak végre, és megvalósítsák az OpenAPI támogatást.
  • Az RPC POST-on keresztül egy névtelen paraméterrel lehet függvényeket hívni.
  • Lehetőség van függvények meghívására egyetlen JSON-paraméterrel a „Prefer: params=single-object” fejléc nélkül.
  • Engedélyezett bytea típusú adatok betöltése a függvényekbe a „Content-Type: application/octet-stream” kérésekkel.
  • Engedélyezett szöveg betöltése függvényekbe a "Tartalomtípus: szöveg/sima" lekérdezések használatával.
  • Támogatás hozzáadva a dupla zárójelben lévő karakterek kihagyásához, például "?col=in.("Double\"Idézet"), ?col=in.("Vissza\\perjel")".
  • Lehetőség van az első szintű erőforrások szűrésére a beépített szűrők alapján („/projects?select=*,clients!inner(*)&clients.id=eq.12”.
  • Az "is" operátor megengedi az "ismeretlen" értéket.
  • A PostgreSQL 14-gyel kompatibilis, és a PostgreSQL 9.5 támogatása megszűnt.

Forrás: opennet.ru

Hozzászólás