PostgREST 9.0.0:n julkaisu, lisäosat tietokannan muuttamiseen RESTful API:ksi

PostgREST 9.0.0 julkaistiin, erikseen toimiva verkkopalvelin, joka sisältää kevyen lisäosan PostgreSQL DBMS:ään, joka kääntää objektit olemassa olevasta tietokannasta RESTful API:ksi. Sen sijaan, että relaatiodata kartoittaisi objekteiksi (ORM), PostgrREST luo näkymiä suoraan tietokantaan. Tietokantapuoli käsittelee myös JSON-vastausten sarjoittamista, tietojen validointia ja valtuutusta. Järjestelmän suorituskyky riittää käsittelemään jopa 2000 pyyntöä sekunnissa tyypillisellä palvelimella. Projektikoodi on kirjoitettu Haskellilla ja jaettu MIT-lisenssillä.

Esimerkiksi käyttämällä vain tietokannan käyttöoikeusmekanismia, voit myöntää pääsyn tietoihin (taulukot, näkymätyypit ja tallennetut toiminnot) HTTP:n kautta. Tässä tapauksessa tällaista käännöstä ei tarvitse koodata ja yleensä yksi GRANT-komento riittää tuomaan taulukon saataville REST API:n kautta. On mahdollista määrittää pääsy tunnuksella (JWT) ja järjestää "multitenancy" käyttämällä dynaamista rivitason suojausta (Row Level Security).

Arkkitehtonisesti PostgREST pyrkii kohti datalähtöistä arkkitehtuuria (Data-Oriented Architecture), jossa mikropalvelut eivät tallenna itse tiloja, vaan käyttävät tähän yhtä pääsyä tietoihin (Data Access Layer).

PostgREST 9.0.0:n julkaisu, lisäosat tietokannan muuttamiseen RESTful API:ksi

Uuden version muutoksista:

  • Osioidut taulukot lisättiin tallennusskeeman välimuistiin, mikä mahdollisti sellaisten taulukoiden upstamisen UPSERT- ja INSERT-operaatioiden sijaintivastaukseen, suorittaa OPTIONS-kyselyitä ja ottaa käyttöön OpenAPI-tuen.
  • RPC POST:n kautta voidaan kutsua toimintoja yhdellä nimeämättömällä parametrilla.
  • On sallittua kutsua toimintoja yhdellä JSON-parametrilla ilman "Prefer: params=single-object" -otsikkoa.
  • Bytea-tyypin dataa saa ladata funktioihin käyttämällä pyyntöjä, joissa on "Content-Type: application/octet-stream".
  • Sallittu ladata tekstiä funktioihin käyttämällä kyselyitä "Content-Type: text/plain".
  • Lisätty tuki kaksoissulkeissa olevien koodinvaihtomerkkien käyttämiselle, esimerkiksi "?col=in.("Kaksois\"Lainaus"), ?col=in.("Takaisin\\vinoviiva")".
  • Mahdollisuus suodattaa ensimmäisen tason resursseja sisäänrakennettujen suodattimien perusteella ("/projects?select=*,clients!inner(*)&clients.id=eq.12" on tarjottu.
  • "is"-operaattori sallii arvon "tuntematon".
  • Yhteensopivuus PostgreSQL 14:n kanssa on saavutettu ja PostgreSQL 9.5:n tuki on lopetettu.

Lähde: opennet.ru

Lisää kommentti