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

Došlo je do izdanja PostgREST 9.0.0, zasebno operativnog web poslužitelja s implementacijom laganog dodatka za PostgreSQL DBMS, koji prevodi objekte iz postojeće baze podataka u RESTful API. Umjesto preslikavanja relacijskih podataka u objekte (ORM), PostgREST stvara poglede izravno u bazi podataka. Strana baze podataka također obrađuje serijalizaciju JSON odgovora, provjeru valjanosti podataka i autorizaciju. Performanse sustava dovoljne su za obradu do 2000 zahtjeva u sekundi na tipičnom poslužitelju. Projektni kod je napisan u Haskell-u i distribuiran pod licencom MIT-a.

Na primjer, korištenjem samo mehanizma povlastica baze podataka, možete odobriti pristup podacima (tablice, vrste pogleda i pohranjene procedure) preko HTTP-a. U ovom slučaju nema potrebe za kodiranjem takvog prijevoda i obično je dovoljna jedna naredba GRANT da tablica postane dostupna putem REST API-ja. Moguće je konfigurirati pristup pomoću tokena (JWT) i organizirati "multitenancy" korištenjem dinamičke sigurnosti na razini retka (Row Level Security).

Arhitektonski, PostgREST gura prema podatkovno orijentiranoj arhitekturi (Data-Oriented Architecture), gdje mikroservisi sami ne spremaju stanja, već za to koriste jedan pristup podacima (Data Access Layer).

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

Među promjenama u novoj verziji:

  • Particionirane tablice dodane su u predmemoriju sheme pohrane, što je omogućilo takvim tablicama da ugrade UPSERT i INSERT operacije u Location response, izvrše OPTIONS upite i implementiraju OpenAPI podršku.
  • Preko RPC POST-a dopušteno je pozivati ​​funkcije s jednim neimenovanim parametrom.
  • Dopušteno je pozivati ​​funkcije s jednim JSON parametrom bez zaglavlja "Prefer: params=single-object".
  • Dopušteno je učitavanje podataka tipa bytea u funkcije pomoću upita s “Content-Type: application/octet-stream”.
  • Dopušteno učitavanje teksta u funkcije pomoću upita s "Content-Type: text/plain".
  • Dodana je podrška za izbjegavanje znakova unutar dvostrukih zagrada, na primjer, "?col=in.("Dvostruki\"navod"), ?col=in.("Natrag\\kosa crta")".
  • Omogućena je mogućnost filtriranja resursa prve razine na temelju ugrađenih filtara (“/projects?select=*,clients!inner(*)&clients.id=eq.12”).
  • Operator "je" dopušta vrijednost "nepoznato".
  • Kompatibilnost s PostgreSQL 14 je postignuta i podrška za PostgreSQL 9.5 je ukinuta.

Izvor: opennet.ru

Dodajte komentar