Izdanje PostgREST 9.0.0, dodataka za pretvaranje baze podataka u RESTful API

Objavljen je PostgREST 9.0.0, zasebno operativni web server sa implementacijom laganog dodatka za PostgreSQL DBMS, koji prevodi objekte iz postojeće baze podataka u RESTful API. Umjesto mapiranja relacijskih podataka u objekte (ORM), PostgREST kreira poglede direktno u bazi podataka. Strana baze podataka također upravlja serijalizacijom JSON odgovora, provjerom valjanosti podataka i autorizacijom. Performanse sistema su dovoljne za obradu do 2000 zahteva u sekundi na tipičnom serveru. Kod projekta je napisan na Haskell-u i distribuiran pod MIT licencom.

Na primjer, koristeći samo mehanizam privilegija baze podataka, možete odobriti pristup podacima (tabelama, tipovima pogleda i pohranjenim procedurama) preko HTTP-a. U ovom slučaju, nema potrebe za kodiranjem takvog prijevoda i obično je dovoljna jedna GRANT naredba da tabela bude dostupna preko REST API-ja. Moguće je konfigurirati pristup po tokenu (JWT) i organizirati „multitenance“ korištenjem dinamičke sigurnosti na nivou reda (Row Level Security).

Arhitektonski, PostgREST teži arhitekturi orijentisanoj na podatke (Arhitektura orijentisana na podatke), gde mikroservis ne čuva sama stanja, već za to koriste jedan pristup podacima (Sloj pristupa podacima).

Izdanje PostgREST 9.0.0, dodataka za pretvaranje baze podataka u RESTful API

Među promjenama u novoj verziji:

  • Particionirane tabele su dodane u keš šeme skladištenja, što je omogućilo takvim tabelama da ugrade operacije UPSERT i INSERT u odgovor lokacije, izvršavaju OPTIONS upite i implementiraju podršku za OpenAPI.
  • Preko RPC POST-a dozvoljeno je pozivanje funkcija sa jednim neimenovanim parametrom.
  • Dozvoljeno je pozivanje funkcija s jednim JSON parametrom bez zaglavlja “Prefer: params=single-object”.
  • Dozvoljeno je učitavanje podataka tipa bytea u funkcije pomoću zahtjeva sa “Content-Type: application/octet-stream”.
  • Dozvoljeno učitavanje teksta u funkcije pomoću upita sa "Content-Type: text/plain".
  • Dodata podrška za izbjegavanje znakova unutar dvostrukih zagrada, na primjer, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Omogućena je mogućnost filtriranja resursa prvog nivoa na osnovu ugrađenih filtera (“/projects?select=*,clients!inner(*)&clients.id=eq.12”).
  • Operator "is" dozvoljava vrijednost "nepoznato".
  • Kompatibilnost sa PostgreSQL 14 je postignuta, a podrška za PostgreSQL 9.5 je ukinuta.

izvor: opennet.ru

Dodajte komentar