PostgREST 9.0.0 kaleratzea, datu-basea RESTful API bihurtzeko gehigarriak

PostgREST 9.0.0 kaleratu zen, bereizita funtzionatzen duen web zerbitzari bat PostgreSQL DBMSrako gehigarri arin bat inplementatzen duena, lehendik dagoen datu-base batetik objektuak RESTful API batera itzultzen dituena. Datu erlazionalak objektuetan (ORM) mapatu beharrean, PostgREST-ek zuzenean sortzen ditu ikuspegiak datu-basean. Datu-baseak JSON erantzunen serializazioa, datuen baliozkotzea eta baimena ere kudeatzen ditu. Sistemaren errendimendua nahikoa da zerbitzari arrunt batean segundoko 2000 eskaera prozesatzeko. Proiektuaren kodea Haskell-en idatzita dago eta MIT lizentziapean banatzen da.

Adibidez, datu-basearen pribilegioen mekanismoa soilik erabiliz, datuetarako sarbidea eman dezakezu (taulak, ikuspegi motak eta gordetako prozedurak) HTTP bidez. Kasu honetan, ez dago itzulpen hori kodetu beharrik eta normalean GRANT komando bat nahikoa da taula REST APIaren bidez eskuragarri jartzeko. Token bidezko sarbidea (JWT) konfiguratu eta "multitenancy" antola daiteke errenkada-mailako segurtasun dinamikoaren bidez (Row Level Security).

Arkitektura aldetik, PostgREST-ek datuetara bideratutako arkitektura baterantz bultzatzen du (Data-Oriented Architecture), non mikrozerbitzuek ez dituzten egoerak beraiek gordetzen, baizik eta datuetarako sarbide bakarra erabiltzen duten (Data Access Layer) horretarako.

PostgREST 9.0.0 kaleratzea, datu-basea RESTful API bihurtzeko gehigarriak

Bertsio berriaren aldaketen artean:

  • Biltegiratze-eskemaren cachean zatitutako taulak gehitu ziren, eta horri esker, taula horiek UPSERT eta INSERT eragiketak txertatzea Kokapen erantzunean, AUKERAK kontsultak exekutatu eta OpenAPI euskarria ezartzea ahalbidetu zuten.
  • RPC POST bidez, izenik gabeko parametro batekin funtzioak deitzea onartzen da.
  • JSON parametro bakarra duten funtzioei deitzeko baimena dago "Prefer: params=single-object" goibururik gabe.
  • Bytea motako datuak funtzioetan kargatzea onartzen da "Eduki-mota: aplikazioa/octet-stream" duten eskaerak erabiliz.
  • Testua funtzioetan kargatzeko baimena ematen du "Eduki-mota: testua/soila" duten kontsultak erabiliz.
  • Kortxete bikoitzeko karaktereak ihes egiteko laguntza gehitu da, adibidez, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Iragazki barneratuetan oinarritutako lehen mailako baliabideak iragazteko gaitasuna ("/projects?select=*,clients!inner(*)&clients.id=eq.12" eman da.
  • "da" operadoreak "ezezaguna" balioa onartzen du.
  • PostgreSQL 14-rekin bateragarritasuna lortu da eta PostgreSQL 9.5-erako laguntza eten egin da.

Iturria: opennet.ru

Gehitu iruzkin berria