Išleistas PostgREST 9.0.0, priedai, skirti duomenų bazei paversti RESTful API

Išleistas PostgREST 9.0.0 – atskirai veikiantis žiniatinklio serveris, kuriame įdiegtas lengvas PostgreSQL DBVS priedas, verčiantis objektus iš esamos duomenų bazės į RESTful API. Užuot susieję reliacinius duomenis į objektus (ORM), PostgREST sukuria rodinius tiesiai duomenų bazėje. Duomenų bazės pusė taip pat tvarko JSON atsakymų nuoseklumą, duomenų patvirtinimą ir autorizavimą. Sistemos našumo pakanka apdoroti iki 2000 užklausų per sekundę įprastame serveryje. Projekto kodas parašytas Haskell ir platinamas pagal MIT licenciją.

Pavyzdžiui, naudodami tik duomenų bazės privilegijų mechanizmą, galite suteikti prieigą prie duomenų (lentelių, rodinių tipų ir saugomų procedūrų) per HTTP. Tokiu atveju tokio vertimo koduoti nereikia ir dažniausiai užtenka vienos GRANT komandos, kad lentelė būtų prieinama per REST API. Galima sukonfigūruoti prieigą naudojant prieigos raktą (JWT) ir organizuoti „daugialaikę nuoma“, naudojant dinaminę eilutės lygio apsaugą (eilės lygio sauga).

Architektūriniu požiūriu PostgREST stumia į duomenis orientuotą architektūrą (angl. Data-Oriented Architecture), kai mikropaslaugos pačios neišsaugo būsenų, o tam naudoja vieną prieigą prie duomenų (Data Access Layer).

Išleistas PostgREST 9.0.0, priedai, skirti duomenų bazei paversti RESTful API

Tarp naujos versijos pakeitimų:

  • Suskirstytos lentelės buvo įtrauktos į saugyklos schemos talpyklą, todėl tokiose lentelėse buvo galima įterpti UPSERT ir INSERT operacijas į Vietos atsaką, vykdyti OPTIONS užklausas ir įdiegti OpenAPI palaikymą.
  • Per RPC POST galima iškviesti funkcijas su vienu neįvardytu parametru.
  • Leidžiama iškviesti funkcijas su vienu JSON parametru be antraštės „Prefer: params=single-object“.
  • Bytea tipo duomenis leidžiama įkelti į funkcijas naudojant užklausas su „Content-Type: application/octet-stream“.
  • Leidžiama įkelti tekstą į funkcijas naudojant užklausas su "Turinio tipas: tekstas/paprastas".
  • Pridėtas simbolių pašalinimo dvigubuose skliaustuose palaikymas, pvz., "?col=in.("Dviguba\"Citata"), ?col=in.("Atgal\\pasvirasis brūkšnys")".
  • Galimybė filtruoti pirmojo lygio išteklius remiantis integruotais filtrais („/projects?select=*,clients!inner(*)&clients.id=eq.12“).
  • Operatorius „is“ leidžia reikšmę „nežinoma“.
  • Suderinamumas su PostgreSQL 14 buvo pasiektas ir PostgreSQL 9.5 palaikymas buvo nutrauktas.

Šaltinis: opennet.ru

Добавить комментарий