Izdaja PostgREST 9.0.0, dodatki za spreminjanje baze podatkov v RESTful API

Izdan je bil PostgREST 9.0.0, ločeno delujoč spletni strežnik z implementacijo lahkega dodatka za DBMS PostgreSQL, ki prevaja objekte iz obstoječe baze podatkov v RESTful API. Namesto preslikave relacijskih podatkov v objekte (ORM) PostgREST ustvari poglede neposredno v bazi podatkov. Stran baze podatkov obravnava tudi serializacijo odgovorov JSON, preverjanje podatkov in avtorizacijo. Zmogljivost sistema zadostuje za obdelavo do 2000 zahtev na sekundo na tipičnem strežniku. Projektna koda je napisana v Haskell-u in se distribuira pod licenco MIT.

Na primer, z uporabo samo mehanizma privilegijev baze podatkov lahko odobrite dostop do podatkov (tabel, vrst pogledov in shranjenih procedur) prek HTTP. V tem primeru ni potrebe po kodiranju takega prevoda in običajno zadostuje že en ukaz GRANT, da postane tabela na voljo prek API-ja REST. Možno je konfigurirati dostop z žetonom (JWT) in organizirati "multitenancy" z uporabo dinamične varnosti na ravni vrstic (Row Level Security).

Arhitekturno PostgREST teži k podatkovno usmerjeni arhitekturi (Data-Oriented Architecture), kjer mikrostoritve ne shranjujejo stanj same, ampak za to uporabljajo en sam dostop do podatkov (Data Access Layer).

Izdaja PostgREST 9.0.0, dodatki za spreminjanje baze podatkov v RESTful API

Med spremembami v novi različici:

  • Particionirane tabele so bile dodane v predpomnilnik sheme shranjevanja, kar je omogočilo takšnim tabelam vdelavo operacij UPSERT in INSERT v odziv lokacije, izvajanje poizvedb OPTIONS in implementacijo podpore za OpenAPI.
  • Prek RPC POST je dovoljeno klicati funkcije z enim neimenovanim parametrom.
  • Dovoljeno je klicati funkcije z enim parametrom JSON brez glave »Prefer: params=single-object«.
  • Dovoljeno je nalaganje podatkov tipa bytea v funkcije z uporabo zahtev z "Content-Type: application/octet-stream".
  • Dovoljeno nalaganje besedila v funkcije z uporabo poizvedb z "Content-Type: text/plain".
  • Dodana podpora za ubežne znake znotraj dvojnih oklepajev, na primer "?col=in.("Double\"Quote"), ?col=in.("Back\\poševnica")".
  • Zagotovljena je možnost filtriranja virov prve ravni na podlagi vgrajenih filtrov (»/projects?select=*,clients!inner(*)&clients.id=eq.12«).
  • Operator "je" dovoljuje vrednost "neznano".
  • Združljivost s PostgreSQL 14 je bila dosežena in podpora za PostgreSQL 9.5 je bila ukinjena.

Vir: opennet.ru

Dodaj komentar