PostgREST 9.0.0 väljalase, lisandmoodulid andmebaasi muutmiseks RESTful API-ks

Välja anti PostgREST 9.0.0, eraldi töötav veebiserver, mis sisaldab PostgreSQL DBMS-i kerget lisandmoodulit, mis teisendab objektid olemasolevast andmebaasist RESTful API-sse. Relatsiooniandmete objektideks (ORM-i) vastendamise asemel loob PostgREST vaated otse andmebaasis. Andmebaasi pool tegeleb ka JSON-i vastuste serialiseerimise, andmete valideerimise ja autoriseerimisega. Süsteemi jõudlus on piisav, et tavalises serveris töödelda kuni 2000 päringut sekundis. Projekti kood on kirjutatud Haskellis ja seda levitatakse MIT-i litsentsi all.

Näiteks kasutades ainult andmebaasi privileegide mehhanismi, saate anda juurdepääsu andmetele (tabelid, vaatetüübid ja salvestatud protseduurid) HTTP kaudu. Sel juhul pole sellist tõlget vaja kodeerida ja tavaliselt piisab ühest GRANT käsust, et tabel REST API kaudu kättesaadavaks muutuks. Dünaamilise reataseme turvalisuse (Row Level Security) abil on võimalik konfigureerida juurdepääsu lubade abil (JWT) ja korraldada mitme teenusepakkumist.

Arhitektuuriliselt tõukab PostgREST andmekeskse arhitektuuri (Data-Oriented Architecture) poole, kus mikroteenused ei salvesta olekuid ise, vaid kasutavad selleks ühtset juurdepääsu andmetele (Data Access Layer).

PostgREST 9.0.0 väljalase, lisandmoodulid andmebaasi muutmiseks RESTful API-ks

Uue versiooni muudatuste hulgas:

  • Jaotatud tabelid lisati salvestusskeemi vahemällu, mis võimaldas sellistel tabelitel manustada asukoha vastusesse UPSERT-i ja INSERT-i toiminguid, täita OPTIONS-päringuid ja rakendada OpenAPI tuge.
  • RPC POST-i kaudu on lubatud kutsuda funktsioone ühe nimeta parameetriga.
  • Funktsioonide kutsumine ühe JSON-parameetriga on lubatud ilma päise "Prefer: params=single-object"ta.
  • Funktsioonidesse on lubatud laadida baiti tüüpi andmeid, kasutades päringuid sisutüübiga: rakendus/oktetivoog.
  • Lubatud laadida teksti funktsioonidesse, kasutades päringuid "Sisutüüp: tekst/lihtne".
  • Lisatud on topeltsulgudes olevate märkide vältimise tugi, näiteks "?col=in.("Double\"Quote"), ?col=in.("Tagasi\\kaldkriips")".
  • Võimalus filtreerida esimese taseme ressursse sisseehitatud filtrite alusel (“/projects?select=*,clients!inner(*)&clients.id=eq.12”.
  • Operaator "is" lubab väärtust "unknown".
  • Ühilduvus PostgreSQL 14-ga on saavutatud ja PostgreSQL 9.5 tugi on lõpetatud.

Allikas: opennet.ru

Lisa kommentaar